您的位置:首页 > 其它

Perl正则表达式总结_3

2016-03-14 15:43 211 查看
#匹配任意字符,字符.匹配除换行外的多个字符,通常与*合用

#匹配指定数目的字符,字符对{}指定所匹配字符的出现次数。如/de{1,3}f/匹配def #deef deeef;/de{3}f/匹配deeef;/de{3,}f/匹配不少于3个e在d和f之间;/de{0,3}f/匹配不多于3个e在d和f之间。

#指定选项,字符“|”指定两个或多个选择来匹配模式。如/def|ghi/匹配def或ghi

#例:检验数字表示合法性

$number=OX1234343f;

if($number=~/^-?\d+$|^-?O[xX][\da-fA-F]+$/){

print("$number is a legal integer.\n");

}else{

print("$number is not a legal integer.\n");

}

print("\n**********************************************************\n");

#模式的部分重用,当模式中匹配相同的部分出现多次时,可用括号括起来,用\n来多次引用,以简化表达式:

#/\d{2}([\W])\d{2}\1\d{2}/匹配12-05-92 ,26.11.87, 07 04 93

#注意:不同于/(\d{2})([\W])\1\2\1/ ,这个只匹配17-17-17,而不匹配17-05-91

#转义和特定字符的执行次序,特殊字符描述

#()模式内存

#+ * ? {} 出现次数

#^ $ \b \B 锚

#| 选项

#指定模式定界符

#缺省的模式定界符为反斜线/,但其可用字母m自行指定,如:m!/u/jqpublic/perl/prog1!

#其等价于/\/u\/jqpublic\/perl\/prog1/

#m指定!!为模式匹配符,此时不做变量替换;当用特殊字符作为定界符时,其转义功能或特殊功能即不能使用。

#模式次序变量

#在模式匹配后调用重用部分的结果可用变量$n,全部的结果用变量$&

$string="this string contains the number 225.11.";

$string=~/-?(\d+)\.?(\d+)/;

$integerpart=$1;

$decimalpart=$2;

$totalpart=$&;

print("$integerpart\n$decimalpart\n$totalpart");

print("\n**********************************************************\n");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: