Adding any pattern to match in regex
我有一个很好的正则表达式,除了在一个特定的情况下;
1 2 3 | $message = preg_replace("#(^(http(s)?://)(?!img.youtube.com/vi/)([-a-zA-Z?-??-?()0-9@:%_+.~\#?&;//=,]+(\.jpg|\.jpeg|\.gif|\.bmp|\.png)))#i", "<p> <img src='$1' width=100%>", $message); |
这个模式有几个功能,1)它完全匹配HTTP或HTTPS,2)它忽略任何包含img.youtube.com/vi/的字符串,3)它在链接中查找流行的图像文件类型。它的工作方式,只有当他们不是一个字符之前的刺(刺像
我需要保留^(http(s)?://)作为完全匹配(删除^可以解决我的问题,但会与随后的regex规则发生冲突。所以,看起来问题在于,这种完全匹配的情况不希望在^(http(s))之前有任何回车、空格或其他内容。://)。如何使regex工作,使字符串前后的任何内容都不相关,但当您看到应用规则的HTTP或HTTPS时?
如您所知,
我还要注意的是,您不需要将
1 | \bhttps?://... |