我试图了解正面和负面的前瞻,但我想我错过了一些东西。
q(?=u)
我理解这个正则表达式的意思是:“匹配后跟一个 u 的 aq”,所以我得到了一个字符串“quit”的匹配,但只得到了一个带有 'q' 的组。
但是使用正则表达式 q(?=u)i,我没有得到字符串“quit”的任何结果。为什么会发生?可能这个正则表达式没有意义,但我想知道它意味着什么以便理解前瞻。
前瞻不消耗其文本。qu
不同于q(?=u)
-- 后者仅匹配 a q
,但要求其后跟u
(但不会被捕获或消耗)。
这就是q(?=u)i
无法匹配的原因——q
需要遵循u
并 i
同时进行,这是不可能的。换句话说,它会找到并捕获,qi
但前提q
是紧随其后的是u
,如果紧随其后的是,则显然不是真的i
。
如果你想匹配qui
,正则表达式是qui
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句