Для удаления URL из данных использую такое рег. выражение:
$Contactinfo = preg_replace("#( |\n|^)(http://)?[0-9a-z_.-/]+?[^@][0-9a-z_.-/]+\.[a-z]{2,4}#is", "", $Contactinfo);
Под фильтр попадают некоторые emailы, содержащие точку. Например, от urma.sell@urmashop.ru после фильтра остается @urmashop.ru
Не могу разобраться как сделать так чтобы фильтр не трогал emailы, содержащие точку.
Может быть кто-то знает?
1. webus - 23 Января, 2010 - 20:45:25 - перейти к сообщению
2. trot - 23 Января, 2010 - 23:54:18 - перейти к сообщению
Во первых, формат URL обязательно включает метод доступа, у вас метод (http://)? является не обязательной частью URL. Предлагается убрать знак вопроса и соответственно скобки, т.е. http://.
Во вторых, что вы хотели выразить этой подмаской ( |\n|^). Если с начало строки, то пишите ^, если вы ищете (как вы пишете) URL в данных, то вообще этого ничего не надо.
В третьих, здесь вы можете посмотреть примеры регулярных выражений для поиска URL
http://www[dot]htmlweb[dot]ru/php/example/preg.php
Во вторых, что вы хотели выразить этой подмаской ( |\n|^). Если с начало строки, то пишите ^, если вы ищете (как вы пишете) URL в данных, то вообще этого ничего не надо.
В третьих, здесь вы можете посмотреть примеры регулярных выражений для поиска URL
http://www[dot]htmlweb[dot]ru/php/example/preg.php