Регулярное: замена вставить мыло в тег

IMW

Guest
Регулярное: замена вставить мыло в тег

PHP:
$string="Все слать на мыло [email][email protected][/email] или на [email][email protected][/email] а вот и ошибка <a href=\"mailto:[email protected]\">[email protected]</a>";

$string=preg_replace("/([a-z0-9_-]{1,20}@(([a-z0-9-]+\.)+(com|net|org|mil|".
   "edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-".
   "9]{1,3}\.[0-9]{1,3}))/si"," <a href=\"mailto:\\1\">\\1</a>",$string);
собственно как дописать рег что б не было ошибки, все что не делал не помагает. Это для админки что б админ только вписывал адресс а в стороке и все адресса менялись правильно, но вот захотели что б и вариант когда сразу html пишут тоже правильно срабатывало.
 

IMW

Guest
Воспользовался советом nofx и вот, что получилось, вроде должно пахать во всех случаях.

PHP:
$string="Все слать на мыло [email][email protected][/email] или на [email][email protected][/email] а вот и нет уже ошибки <a href=\"mailto:[email protected]\">[email protected]</a>";

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

$string=preg_replace("/([a-z0-9_-]{1,20}@(([a-z0-9-]+\.)+(com|net|org|mil|".
   "edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-".
   "9]{1,3}\.[0-9]{1,3}))/si"," <a href=\"mailto:\\1\">\\1</a>",$string);
 
Сверху