糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 14. Perl 正则表达式-正则匹配

14. Perl 正则表达式-正则匹配

时间:2023-08-14 16:33:19

相关推荐

14. Perl 正则表达式-正则匹配

正则表达式(regular expression) 在Perl 里面通常也叫模式(Pattern). 正则表达式是用来匹配或不匹配某个字符串是否符合特定字符串模板的,也可以实现字符串的替换.

1. 正则匹配语法

Perl 的正则表达式语法非常灵活, 可以借助于内置变量$_ 进行简化, 也可以借助于m符号来自定义匹配定界符.

1.1 简写方式

简写模式使用内置变量$_与模式进行匹配.标准模式无须使用绑定操作符 =~

# 匹配字符串$_ = "hello,world";if(/ll/){print "it matched!\n";}# 匹配数组@books=("java", "javascript", "linux", "unix");foreach (@books){print "$_ matched!\n" if(/java/);}

1.2 标准方式

标准模式需要使用绑定操作符 =~

foreach my $book (@books){if($book =~ /i.*x/){print "$book matched!\n";}}

1.3自定义模式定界符

当匹配模式中包含多个/ 时, 由不想借助转移字符\时, 可以使用自定义模式定界符自定义定界符时, 需要使用m常用的模式定界符有大括号{}

# 简写模式$_="";print "$_ matched!\n" if(m{https://});# 标准模式@webs=("", "", "", "");foreach my $web (@webs){if($web =~ m{https://}) {print "$web\n";}}

2. 正则模式中的元字符

所谓元字符,就是指在正则表达式中具有特殊含义的字符。当元字符想表示其本身时, 需要借助于反义字符.

3. 模式修饰符

模式修饰符可以组合,不分先后.

4. 锚位

默认情况下, 如果字符串的开头不匹配给定的模式, 那么会瞬移至第二个字符尝试, 直到字符串的最后一字符。通过锚位,我们可以指定字符串从哪儿开始匹配.perl5 对于行首和行位有了新的表示方式, 但是常用的还是 ^和$

$str = 'hello worldhi worldwelcome world';# hello 为字符串绝对开头, hi 为行首.

5. 字符集简写

对于出现批量比较高的正则表达式分组, Perl 提供了简写模式. 但是使用简写模式时需要注意使用的编码模式时ASCII 码还是Unicode 编码.

6. 返回值

对于正则匹配, 判断结果只有两种,要么是匹配,要么是不匹配.

返回空: 不匹配返回1: 匹配

$str="hello,wolrd";$has_x = $str =~ /x/;$has_o = $str =~ /o/;# 输出结果: has_x:, has_o:1print "has_x:$has_x, has_o:$has_o\n";

如果觉得《14. Perl 正则表达式-正则匹配》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。