我正在使用UrlLinker https://bitbucket.org/kwi/urllinker/src来匹配我网站上的评论中的网址
自从我第一次使用它以来,它对我来说很好,但它对这个链接不起作用
http://example.com/files/213913702712nqh%297cwGb$_1D_e.jpg
此链接已匹配,直到%
符号,其余部分保留为明文:
<a href="http://example.com/files/213913702712nqh">http://example.com/files/213913702712nqh</a>%297cwGb$_1D_e.jpg
如何修改REGEX以匹配%
符号?因为该URL有效。
这是REGEX
{\b(https?://|ftp://)?(?:([^]\\\x00-\x20\"(),:-<>[\x7f-\xff]{1,64})(:[^]\\\x00-\x20\"(),:-<>[\x7f-\xff]{1,64})?@)?((?:[-a-zA-Z0-9]{1,63}\.)+[a-zA-Z][-a-zA-Z0-9]{1,62}|(?:[1-9][0-9]{0,2}\.|0\.){3}(?:[1-9][0-9]{0,2}|0))((:[0-9]{1,5})?(/[!$-/0-9:;=@_':;!a-zA-Z\x7f-\xff]*?)?(\?[!$-/0-9:;=@_':;!a-zA-Z\x7f-\xff]+?)?(#[!$-/0-9:;=@_':;!a-zA-Z\x7f-\xff]+?)?)(?=[)'?.!,;:]*([^-_$+.!*'(),;/?:@=&a-zA-Z0-9]|$))}{\b(https?://|ftp://)?(?:([^]\\\x00-\x20\"(),:-<>[\x7f-\xff]{1,64})(:[^]\\\x00-\x20\"(),:-<>[\x7f-\xff]{1,64})?@)?((?:[-a-zA-Z0-9]{1,63}\.)+[a-zA-Z][-a-zA-Z0-9]{1,62}|(?:[1-9][0-9]{0,2}\.|0\.){3}(?:[1-9][0-9]{0,2}|0))((:[0-9]{1,5})?(/[!$-/0-9:;=@_':;!a-zA-Z\x7f-\xff]*?)?(\?[!$-/0-9:;=@_':;!a-zA-Z\x7f-\xff]+?)?(#[!$-/0-9:;=@_':;!a-zA-Z\x7f-\xff]+?)?)(?=[)'?.!,;:]*([^-_$+.!*'(),;/?:@=&a-zA-Z0-9]|$))}
答案 0 :(得分:0)
您必须将其添加到$rexpath
的字符类:
$rexPath = '(/[!$-/0-9:;%=@_\':;!a-zA-Z\x7f-\xff]*?)?';
答案 1 :(得分:0)
您必须将百分号添加到$rexNonUrl
变量