AL-*_*ami 7 javascript php regex string lookahead
我在正则表达式中有很多困惑,我正试图解决它们.这里我有以下字符串:
{start}do or die{end}extended string
Run Code Online (Sandbox Code Playgroud)
我的两个不同的正则表达式,我只改变了点的位置:
(.(?!{end}))* //returns: {start}do or di
//^ See here
((?!{end}).)* //returns: {start}do or die
//^ See here
Run Code Online (Sandbox Code Playgroud)
为什么第一个正则表达式吃最后一个"e"?
而且这种负面前瞻如何使这个*量词非贪婪?我的意思是为什么它不能消耗超过{end}的字符?
通过您的否定前瞻,您说不可能匹配正则表达式,在您的情况下是:{end}。并.捕获除新行之外的所有内容。
所以用你的第一个正则表达式:
(.(?!{end}))*
Run Code Online (Sandbox Code Playgroud)
它省略了e, 因为:e{end}由于负向前瞻而无法匹配。在您的第二个正则表达式中,另一侧有点的地方可以直到:{end}d因此e包含在您的第二个正则表达式中。
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |