了解正则表达式操作符的优先级

本文介绍了正则表达式的操作符优先级,从最高级的圆括号到最低级的多选结构,并详细说明了如何在双引号变量中进行字符串匹配,包括使用 quotemeta 函数及 Q 和 E 转义操作符。

1.正则表达式的优先级

优先次序                         操作符                                                                               描述

最高级        ()(?:),等等                                                       圆括号或其他分组操作符

第二级         ? + * (m,n) + ?, 等等                                              重复次数

第三极          ^$ abc \G \b \B [abc]                                                 字符序列 文字字符 字符组 断言

最低级          a|b                                                                                 多选结构

 

2.双引号变量内插

使用quotemeta将字符中的特殊字符转义,然后用于匹配。

chomp($pat = <STDIN>);
my $quoted = quotemeta $pat ;
print "matched\n" if /($quoted){2}/;

或者,直接在表达式中使用转义操作符\Q 和 \E

chomp($pat = <STDIN>);
print "matched\n" if /(\Q$quoted\E){2}/;

转载于:https://www.cnblogs.com/tjxwg/archive/2013/03/21/2973817.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值