假设我在$ str ::
中有一个字符串$str = "Test,
Here\'s an interesting in-house litigation position with JPMorgan Chase in New York I thought you might be interested inL
<a href="http://www.example.com/lcdetail.php?akey=e1725">http://www.example.com/lcdetail.php?akey=e1725</a>
They are not using recruiters to fill this job, so if you are interested you can just apply directly.
http://www.example.com/lcdetail.php?akey=e1725
Cordially
--Harrison";
现在我想将标签添加到标签不存在的链接。
我曾使用过这个功能但没有返回所需的值。
function processString($s){
return preg_replace('@(?<!href=")(https?:\/\/[\w\-\.!~?&=+\*\'(),\/]+)((?!\<\/\a\>).)*@i','<a href="$1">$1</a>',$s);
}
我的要求是不要在链接中添加锚标记(如果存在),并添加到没有的链接标记。
感谢。
答案 0 :(得分:2)
好吧,我刚刚将您的lookbehind路径修改为(?<!href="|">)
以避免标记内的链接......
所以使用:
function processString($s){
return preg_replace('@(?<!href="|">)(https?:\/\/[\w\-\.!~?&=+\*\'(),\/]+)((?!\<\/\a\>).)*@i','<a href="$1">$1</a>',$s);
}