好的我知道有很多方法可以将URL转换为链接(锚标记)......
问题是我想匹配一个支持http和https协议的URL ...然后它将在一个新标签中打开...但我正在寻找一种安全的方式来做到这一点...所以简单(.*)
不做这项工作......我尝试过这样的事情:
$var=preg_replace('#(https?://([_a-zA-Z0-9-]+\.[a-z0-9]+)/?[^ ()<>]*)#i', '< href="\\1" target="blank">\\1</a>', $var);
但如果我有这样的字符串:“嘿,看看这个”http://google.com“man”......它把它变成这样的东西
嘿,看看这个:
<a href="http://google.com"" target="blank">http://google.com"</a>
所以我最终在链接的末尾有一个双引号:S知道如何增强这个RegEx吗?我尝试在“不允许的字符”中添加"
:[^ "()<>]
但它根本没有效果。
答案 0 :(得分:0)
您必须在正则表达式中禁用单词"
,而不仅仅是字符"
我知道禁止言语的唯一方法就是:Regular expression to match a line that doesn't contain a word?
所以我猜这个正则表达式可能有效:
#(https?://([_a-zA-Z0-9-]+\.[a-z0-9]+)/?((?!("|\(|\)|<|>)).)*)#i