对于我的一生,我无法弄清楚为什么这个正则表达式
^\.(?=a)$
不匹配
".a"
有人知道为什么吗?
我将关闭此处提供的信息:https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
它不起作用的原因是,先行实际上并没有消耗任何字符,因此匹配位置不会前进。
^\.(?=a)$
匹配行的开头(^
-此匹配),然后匹配文字.
(\.
-也匹配),然后(不消耗任何字符),检查下一个字符是否为文字a
((?=a)
)。是的,因此前瞻匹配。然后断言您的位置在字符串($
)的末尾。这是没有的情况下,因为我们正确后还在.
,所以比赛会失败。
另一个可能的匹配表达式是
^\.(?=a$)
它的工作原理与上面相同,但是关于行尾的断言包含在前行中,因此这次匹配。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句