Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: регулярное выражение для удаления ссылок
Форумы портала PHP.SU » PHP » Регулярные выражения » регулярное выражение для удаления ссылок

Страниц (1): [1]
 

1. webus - 23 Января, 2010 - 20:45:25 - перейти к сообщению
Для удаления 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ы, содержащие точку.

Может быть кто-то знает?
2. trot - 23 Января, 2010 - 23:54:18 - перейти к сообщению
Во первых, формат URL обязательно включает метод доступа, у вас метод (http://)? является не обязательной частью URL. Предлагается убрать знак вопроса и соответственно скобки, т.е. http://.
Во вторых, что вы хотели выразить этой подмаской ( |\n|^). Если с начало строки, то пишите ^, если вы ищете (как вы пишете) URL в данных, то вообще этого ничего не надо.
В третьих, здесь вы можете посмотреть примеры регулярных выражений для поиска URL

http://www[dot]htmlweb[dot]ru/php/example/preg.php

 

Powered by ExBB FM 1.0 RC1