我有一个需要捕获最短匹配的正则表达式模式,但是在嵌套该模式的情况下,惰性匹配不起作用。这就是我的意思:
正则表达式:
/{{.*?}}/
示例字符串:
{{This}} is {{an example {{sentence}}}}
在上面的示例中,我希望提取{{This}}
和{{sentence}}
,因为这些是最短的匹配,但我得到的是{{This}}
和{{an example {{sentence}}
。为什么非贪婪的比赛仍然如此贪婪 - 或者更确切地说,我哪里出错?
答案 0 :(得分:6)
尝试:{{[^{]*?}}
这是因为'{'字符不应出现在内部字符串中。它符合你的期望。
答案 1 :(得分:0)