perl 正则详解

时间:2022-06-01 21:10:11
用/s 来匹配任意字符  默认情况下,点号(.)无法匹配换行符,这对大多数单行匹配的情况是合适的。  

. 圆点用于匹配除换行符外的任何单个字符  

+ 意味着一个或多个相同的字符  

.+  匹配任意单个字符至少一次  

.* 所有任意数量字符。与前一字符结合,可不出现字符  

-? ##零个或一个减号  

\d+  #一个或多个数字  

\.?  #零个或一个小数点  

\d*  ##零个或多个数字  

\S 非空白  

\s 空白 \n \t \r \f  

\w 英文字母和数字的字符窜  

\W 非英文字母和数字的字符串 

zabbix:/root/test# cat a1.pl
my $str="abc";
if ($str =~ /(abc)+/){print "1111111\n"};
zabbix:/root/test# perl a1.pl
1111111 +意味着一个或多个相同的字符 +: 一个或多个相同的前导字符(模式). 如:/de+f/ 匹配的是def,deef,deeeef等。 . 匹配除换行外的所有单个字符,通常与*合用 ? 匹配0个或1个该前一个字符 .* 所有任意数量字符。 与前一字符结合,可不出现字符。 .*俗称捡垃圾,匹配任意东西
?表示它的前一个项目出现0次或者1次搜索
二者配合起来就是匹配任意东西了 x? 匹配 0 次或一次 x 字符串 x* 匹配 0 次或多次 x 字符串,但匹配可能的最少次数