2016-12-02 56 views
3

的第一个实例,我想了匹配网址,除非特殊字符的正则表达式匹配,但是我现在用的正则表达式是当我需要它的第一个实例之后停止匹配的最后一个实例。我究竟做错了什么?!直到某个字符

.+?(?=\") 

要匹配,直到第一"

但是我的结果是下面的一切:

enter image description here

回答

5

您添加"到模式的耗能部件,将其删除。

.+?(?=\") 

请参阅demo。在这里,.+?匹配任何字符1+,尽可能少,上升到第"从比赛中排除,因为“`是先行(一zero-width assertion)的一部分

最好是使用negated character class

^[^"]+ 

another demo。在这里,^[^"]+比赛1+字符以外"(见[^"]+)从一个字符串(^)的开始。

+0

我现在用在PHP代码的命令行回声 - echo shell_ex ec(“cat/tmp/url | grep -Eo'^ [^ \“] +'”);我没有得到任何结果,虽然我认为它的任何想法,因为我没有使用反斜杠的某处,但是我尝试了一切似乎 – NeverPhased

+0

'grep -Eo'^ [^“] +''应该从开头提取字符串将第一个'''的一行排除在匹配之外。请参阅[本演示](http://ideone.com/hvNZ1m)。 –

相关问题