我试图匹配一个url直到一个特殊字符,但我正在使用的正则表达式匹配最后一个实例,当我需要它在第一个实例后停止.我究竟做错了什么?!
.+?(?=\")
为了匹配一切直到第一次“
但是我的结果如下:
@L_301_0@
您添加了“进入模式的消耗部分,将其删除.
.+?(?=\")
见demo.在这里,. ?匹配任何1个字符,尽可能少,直到第一个“从匹配中排除它,因为”`是前瞻的一部分(zero-width assertion).
最好是使用negated character class:
^[^"]+
参见another demo.这里,^ [^“]从字符串的开头(^)匹配除”(见[^“])之外的1个字符.