Regex 正则表达式匹配URL,但不匹配图像

Regex 正则表达式匹配URL,但不匹配图像,regex,preg-match,Regex,Preg Match,我使用上面的代码搜索包含文本、图像URL和常规URL的HTML代码。我想修改上面的内容,使其只匹配不是图像的字符串。我找了很多,但都没找到。我试图使用“负面前瞻匹配”来忽略以jpg | png | gif结尾的链接,但我没有成功 例如: /https?\:\/\/[^\" ]+/ http://www.google.com 嗯,消极的前瞻似乎不是很健康:) 试着这样做: http://www.google.com <- valid match www.example.com/image

我使用上面的代码搜索包含文本、图像URL和常规URL的HTML代码。我想修改上面的内容,使其只匹配不是图像的字符串。我找了很多,但都没找到。我试图使用“负面前瞻匹配”来忽略以jpg | png | gif结尾的链接,但我没有成功

例如:

/https?\:\/\/[^\" ]+/

http://www.google.com 嗯,消极的前瞻似乎不是很健康:)

试着这样做:

http://www.google.com <- valid match

www.example.com/image.jpg <-should not match
https?://(?![^" ]*(?:jpg|png|gif))[^" ]+
         ^-----------------------^
前瞻的格式是
(?!…)
,我在图像扩展名之前添加了
[^”]*
,以允许扩展名的
https?/
部分之间包含任意数量的字符。然后,您可以继续将字符串的其余部分与您已经使用的
[^”]
匹配

此外,您还可以这样应用此正则表达式:

http://www.google.com <- valid match

www.example.com/image.jpg <-should not match
https?://(?![^" ]*(?:jpg|png|gif))[^" ]+
         ^-----------------------^
这样你就不会有太多的东西可以用反斜杠逃避了


.

好吧,消极的前瞻似乎不是很健康:)

试着这样做:

http://www.google.com <- valid match

www.example.com/image.jpg <-should not match
https?://(?![^" ]*(?:jpg|png|gif))[^" ]+
         ^-----------------------^
前瞻的格式是
(?!…)
,我在图像扩展名之前添加了
[^”]*
,以允许扩展名的
https?/
部分之间包含任意数量的字符。然后,您可以继续将字符串的其余部分与您已经使用的
[^”]
匹配

此外,您还可以这样应用此正则表达式:

http://www.google.com <- valid match

www.example.com/image.jpg <-should not match
https?://(?![^" ]*(?:jpg|png|gif))[^" ]+
         ^-----------------------^
这样你就不会有太多的东西可以用反斜杠逃避了


.

能否显示您尝试使用的带有负前瞻的正则表达式?值得注意的是,负前瞻很容易写错。/(https?:\/\/\s+\(!?:jpg | png | gif))\s+/“我想修改上述内容,使其只匹配非图像的字符串。”–字符串永远不是图像。您在这里谈论的是HTML代码吗?您不想在图像元素的
src
属性中匹配URL吗?否则,您只能猜测URL是否会提供图像内容或其他内容–
http://example.com/foo.html
如果该域的运营商选择这样做,则可以轻松交付图像,反之亦然
http://example.com/image.jpg
也可以交付HTML,或者完全不同的东西,我的错。是的,这是HTML代码。问题是。“此处url”正在匹配,我不希望它匹配。我想如果url不包含jpg | png | gif,我应该可以吗?您可以显示您尝试使用的带有负前瞻的正则表达式吗?值得注意的是,负前瞻很容易写错。/(https?:\/\/\s+\(!?:jpg | png | gif))\s+/“我想修改上面的正则表达式,以便它只匹配非图像的字符串。”–字符串永远不是图像。您在这里谈论的是HTML代码吗?您不想在图像元素的
src
属性中匹配URL吗?否则,您只能猜测URL是否会提供图像内容或其他内容–
http://example.com/foo.html
如果该域的运营商选择这样做,则可以轻松交付图像,反之亦然
http://example.com/image.jpg
也可以交付HTML,或者完全不同的东西,我的错。是的,这是HTML代码。问题是。“此处url”正在匹配,我不希望它匹配。我想如果url不包含jpg | png | gif,我应该没问题吧?发现了一个问题…如果url像google.com一样,它会抓住
作为url的一部分…有什么简单的修复方法吗?@user1647347是的,把
放在否定类中,这样所有
[^]
都变成
[^]
。发现一个问题…如果url像google.com一样,它会将
作为url的一部分…有什么简单的解决方法吗?@user1647347是的,将
放在否定类中,以便所有
[^”]
都变成
[^”]