保换的

问题描述:

我要全部替换 ”的mailto:与普通的电子邮件中的HTML“ 链接保换的<a href =“电子邮件地址:只用电子邮件aadress

In: text .... <a href="mailto:[email protected]">not needed</a> text 
Out: text .... [email protected] text 

我这样做:

$str = preg_replace("/\<a.+href=\"mailto:(.*)\".+\<\/a\>/", "$1", $str); 

但如果在字符串或HTML内多个电子邮件“一”的标签

In: <a href="mailto:[email protected]">not needed</a><a href="mailto:[email protected]"><font size="3">[email protected]</font></a> 
Out: [email protected]"> 

让你的对手失败非贪婪?到量词+*为:

$str = preg_replace("/\<a.+?href=\"mailto:(.*?)\".+?\<\/a\>/", "$1", $str); 

你也不必逃避<>和因为有一些/在模式它能够更好地使用不同的分隔符,因为你没有做任何变量图案内插值,也没有必要这样就可以避免逃逸"格局内括在"

$str = preg_replace('#<a.+?href="mailto:(.*?)".+?</a>#', "$1", $str); 
+0

谢谢,不贪不匹配的工作做好感谢您的逃脱信息。 – Lauri 2010-03-27 15:57:23