正则表达式匹配,直到某个字符的第一个实例

Nev*_*sed 12 regex

我试图匹配一个url直到一个特殊字符,但我正在使用的正则表达式匹配最后一个实例,当我需要它在第一个实例后停止.我究竟做错了什么?!

.+?(?=\")
Run Code Online (Sandbox Code Playgroud)

为了匹配所有东西直到第一 "

但是我的结果如下:

在此输入图像描述

Wik*_*żew 22

您将其添加"到模式的消耗部分中,将其删除.

.+?(?=\")
Run Code Online (Sandbox Code Playgroud)

演示.在这里,.+?匹配任何1个字符,尽可能少,直到第一个"从匹配中排除,因为"`是前瞻的一部分(零宽度断言).

最好是使用否定的字符类:

^[^"]+
Run Code Online (Sandbox Code Playgroud)

另一个演示.在这里,从字符串()的开头^[^"]+匹配除"(见[^"]+)之外的1+个字符^.