我有一个正则表达式,可以在文本中查找 url 并用链接替换它们
preg_replace( '@(?<![.*">])\b(?:(?:https?|ftp|file)://|[a-z]\.)[-A-Z0-9+&#/%=~_|$?!:,.]*[A-Z0-9+&#/%=~_|$]@i', '<a href="\0" target="_blank" rel="nofollow">\0</a>', $text );
问题是,当有人键入包含“ie”的文本时,它也会将其转换为链接,这不应该发生。如何限制此正则表达式以替换长度超过 3 个字符的字符串?
我试过 put {3,}
,但它不起作用。
preg_replace( '@(?<![.*">])\b(?:(?:https?|ftp|file)://|[a-z]\.)
([-A-Z0-9+&#/%=~_|$?!:,.]{3,})*[A-Z0-9+&#/%=~_|$]@i', '
<a href="\0" target="_blank" rel="nofollow">\0</a>', $text );