首页 新闻 会员 周边 捐助

逆序环视中的逆序体现在哪里

0
[已关闭问题] 关闭于 2025-07-27 09:44

$str="abc123abcc12c34";

逆序环视,这里能逆序匹配成功,靠的是锚定括号后面的c

$str =~ /a.*(?<=\d)c/; # abc123abcc12c
print "$&\n";

这个作用

_java_python的主页 _java_python | 小虾三级 | 园豆:984
提问于:2025-07-27 09:43
< >
分享
所有回答(1)
0

正则引擎默认从左向右(顺序)扫描字符串,而逆序环视(?<=)要求匹配时‌向左回溯检查‌当前位置左侧的字符是否符合条件
1
2。
在示例a.*(?<=\d)c中:

当引擎扫描到候选字符c时
逆序环视(?<=\d)强制引擎‌向左检查‌c前面的字符
若左侧字符是数字(\d),则c匹配成功

原始匹配:a.*c → 匹配到结尾(失败)
回溯过程:
...12c34 ← 检查最后一个c:左侧是'2'(数字) → 匹配成功

逆序检查方向

_java_python | 园豆:984 (小虾三级) | 2025-07-27 09:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册