Perl正则表达式总结_3

本文深入探讨了正则表达式的高级用法,包括模式匹配、重复与选项选择等内容,并通过实际案例展示了如何验证数字的有效性及简化模式表达。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#匹配任意字符,字符.匹配除换行外的多个字符,通常与*合用


#匹配指定数目的字符,字符对{}指定所匹配字符的出现次数。如/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");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值