#匹配任意字符,字符.匹配除换行外的多个字符,通常与*合用
#匹配指定数目的字符,字符对{}指定所匹配字符的出现次数。如/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");
#匹配指定数目的字符,字符对{}指定所匹配字符的出现次数。如/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");