给定以下字符串;在需要非贪婪匹配的情况下匹配正则表达式
我想匹配"And now for something completely different!"(Monty Python)
,通过引用引号和括号。在此示例中,"Hello"
不应匹配,因为引号后没有括号。
非贪婪的方法看起来就像一条路可走:".*?"
比赛"Hello"
和"And now for something completely different!"
分开,这是接近的,但如果我追加到这个支架,".*?"(.*)
,我结束了整个字符串匹配。
也就是说
"Hello", he said. "And now for something completely different!"(Monty Python)
返回。
如何强制我的正则表达式按照我的要求行事?我在python中工作,所以可以选择使用lookahead/behind。
要匹配字面括号,使用反斜线转义或放入类中,否则它们将打开捕获组。此外,我宁愿使用否定类而不是非贪婪点,它不会给你从最后的最短匹配。 –