我有两种 html/text 案例:
My email is username@domen.com
My email is <a href="mailto:username@domen.com">username@domen.com</a>
此外,我的功能是搜索电子邮件链接,并用<a href="email@address">email@address</a>
模式替换它们,它可以工作。但是,如果文本已经包含电子邮件链接怎么办。我也不想匹配它们。
function make_email_links($text)
{
return preg_replace(
array('/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)
(\\.[A-Za-z0-9-]+)*)/iex'
),
array(
"stripslashes((strlen('\\2')>0?'<a href=\"mailto:\\0\">\\0</a>':'\\0'))"
),
$text
);
}
我试过了
'/((^<a) .......... )/iex'
但它没有成功。如何仅匹配文本等电子邮件链接而不匹配真实的电子邮件链接?