我正在尝试匹配一个url直到一个特殊字符,但我正在使用的正则表达式匹配最后一个实例,当我需要它在第一个实例后停止。我做错了什么?!
.+?(?=\")
要匹配所有内容,直到第一个"
但是我的结果如下:
答案 0 :(得分:15)
您将"
添加到模式的消费部分,将其删除。
.+?(?=\")
见demo。在这里,.+?
匹配任何1个字符,尽可能少,直到第一个"
从匹配中排除它,因为"`是前瞻的一部分({{3} }})。
最好是使用zero-width assertion:
^[^"]+
见negated character class。在此处,^[^"]+
匹配字符串开头("
)以外的[^"]+
以外的1个字符(请参阅^
)。