20、正则表达式匹配:贪婪量词与引擎机制解析

正则表达式匹配:贪婪量词与引擎机制解析

1. 标准量词的贪婪特性

标准量词(如 ? + * {min,max} )具有贪婪特性。当这些量词作用于子表达式时,存在最小匹配次数和最大尝试匹配次数。贪婪量词总是尝试尽可能多地进行匹配,只有在后续正则表达式部分匹配失败时,才会放弃部分匹配。

例如,使用 \b\w+s\b 匹配以 s 结尾的单词, \w+ 会先尝试匹配整个单词,但为了让 s 也能匹配, \w+ 必须放弃部分匹配。

再看 [0-9]+ 在 “March 1998” 中的匹配情况,匹配到 1 后,由于 + 是贪婪的,它会继续匹配 998 ,直到字符串结束。

2. 贪婪特性的应用示例
  • 邮件主题匹配 :使用 ^Subject: (.+) 可以通过工具的括号记忆功能(如 Perl 中的 $1 )获取邮件主题文本。 .* 是贪婪的,会尽可能多地匹配字符,从而填充 $1
  • 过度贪婪的问题 :若使用 ^Su
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值