匹配字符串而不带主机

时间:2019-07-10 07:55:21

标签: php regex

我在这里https://regex101.com/r/ZDof07/1

我需要选择不包含http的字符串。

因此,在我的示例中,我需要获取字符串:

url ( /global/css/bootstrap/fonts/glyphicons-halflings-regularhttp.eot )
url(/global/css/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix)

我使用以下正则表达式:

/url\s*\((?!http)[^\)]+\)/gmi

表达式甚至包含更多的字符串:

url(    http://www.neco.cz/global/css/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix)

但是我不想要它,因为它包含一个“ http”

1 个答案:

答案 0 :(得分:2)

您可以将此正则表达式与更正的超前断言一起使用:

url\s*\((?![^)]*http:)[^)]+\)

Updated RegEx Demo

这里(?![^)]*http:)是一个否定的超前断言,如果我们前面有0个或更多http:个字符之后有字符串non-(,则匹配失败。