我试图匹配一个url直到一个特殊字符,但我正在使用的正则表达式匹配最后一个实例,当我需要它在第一个实例后停止.我究竟做错了什么?!
.+?(?=\")
Run Code Online (Sandbox Code Playgroud)
为了匹配所有东西直到第一 "
但是我的结果如下:
Wik*_*żew 22
您将其添加"到模式的消耗部分中,将其删除.
.+?(?=\")
Run Code Online (Sandbox Code Playgroud)
见演示.在这里,.+?匹配任何1个字符,尽可能少,直到第一个"从匹配中排除,因为"`是前瞻的一部分(零宽度断言).
最好是使用否定的字符类:
^[^"]+
Run Code Online (Sandbox Code Playgroud)
看另一个演示.在这里,从字符串()的开头^[^"]+匹配除"(见[^"]+)之外的1+个字符^.