我可以;我不知道我的线路出了什么问题:
$ret = preg_replace( "(http://|https://|http://www.|https://www.)([[:alnum:]#?~/&=._-]+)", "<a href='"''1''2'" target='"_blank'">''1''2</a>", $ret);
我试着在第一个arg的第一个pos中插入一个/,但没有成功。
我被难住了。谢谢你的帮助。
只需在正则表达式中添加分隔符,选择表达式中不存在的分隔符以避免转义,这里我建议!
:
$ret = preg_replace( "!(http://|https://|http://www.|https://www.)([[:alnum:]#?~/&=._-]+)!", "<a href='"$1$2'" target='"_blank'">$1$2</a>", $ret);
你也可以简化一点:
$ret = preg_replace( "!(https?://(?:www'.)?['w#?~/&=.-]+)!", "<a href='"$1'" target='"_blank'">$1</a>", $ret);
$ret = preg_replace(
'/((?:http:'/'/|https:'/'/)(?:www'.)?)([[:alnum:]#?~'/&=._-]+)/',
'<a href="$1$2" target="_blank">$1$2</a>',
$ret
);
它应该这样工作。基本上,您需要转义正则表达式中的正向斜杠。