【问题标题】:Match all URLs exclude jpg,gif,png匹配所有 URL,不包括 jpg、gif、png
【发布时间】:2012-06-27 05:16:53
【问题描述】:

我想匹配所有 URL,但从与该正则表达式匹配的蜜蜂中排除图像 URL:jpe?g|gif|png。

\b(?:https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*A-Z0-9+ &@#/%=~_|$

问题是带有排除的部分不是这样工作的:(?!jpe?g|gif|png)

有人有解决办法吗?

例子:

不匹配:

http://example.com/example.jpg
http://example.com/example231/example.gif

匹配:

http://example.com/example.html
http://example.com/example/?id=4331
http://example.com/example/example/ex_ample/ex-ample/?id=4331  

【问题讨论】:

    标签: java php regex match imageurl


    【解决方案1】:

    只需使用(?!.*(?:\.jpe?g|\.gif|\.png)$) 开始您的正则表达式,

    所以如果你当前的正则表达式是\b(?:https?|ftp|file)://...,那么把它合并到

    (?!.*(?:\.jpe?g|\.gif|\.png)$)\b(?:https?|ftp|file)://...

    另请阅读PHP URL validation

    【讨论】:

      【解决方案2】:

      我正在为最近关闭的一个重复问题解决这个问题,所以我会在这里发布:

      ((?!.*(png|jpg|gif)(?!.))(?:https?|file|ftp):\/\/.*.\.(?:com|ca|net|museum|org|co\.uk))

      如果合适,请随意添加更多协议,如果合适,可以添加更多图片扩展,如果合适,可以添加更多顶级域。

      Tested on regex101

      【讨论】:

        猜你喜欢
        • 2018-12-22
        • 1970-01-01
        • 1970-01-01
        • 2012-12-21
        • 2014-05-31
        • 2011-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多