Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярное выражение не хочет работать в php 
V
    Опции темы
patap
Дата 22.6.2010, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 5
Всего: 40



есть такое выражение, вполне нормально находит url в тексте
Код
((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)


но немогу понять как его правильно всталять в preg_replace()

Код

preg_replace('#((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)#', 'replace_text', $text);


выдает
Warning: preg_replace() [function.preg-replace]: Unknown modifier '@' in Z:\home\localhost\wordpress\wp-content\plugins\twitter-user-info\twitter-user-info.php on line 209

если экранирую, то начинает ругаться вроде как на слеш, которым экранирую. 
Warning: preg_replace() [function.preg-replace]: Unknown modifier '\' in Z:\home\localhost\wordpress\wp-content\plugins\twitter-user-info\twitter-user-info.php on line 209

как его правильно записать?



--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
skyboy
Дата 22.6.2010, 15:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



Цитата(patap @  22.6.2010,  13:54 Найти цитируемый пост)
если экранирую, то начинает ругаться вроде как на слеш, которым экранирую

как именно экранируешь?
надо так:
Код

#((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:\#@%/;$()~_?\+-=\\\.&]*)#

PM MAIL   Вверх
patap
Дата 22.6.2010, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 5
Всего: 40



skyboy, блин, точно! это такой стандартный синтаксис? просто никогда до этого с такой проблемой не сталкивался

да, экранировал просто \@, так всегда делал, к примеру если нужно было использовать [ как символ - ставил \[ и нормлаьно.

можешь объяснить в чем разница?

Это сообщение отредактировал(а) patap - 22.6.2010, 17:23


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
bars80080
Дата 22.6.2010, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



ты не понял, у тебя символ # - ограничитель для регулярного выражения. этот же символ встречается в наборе. ты его не заэкранировал, в результате выражение рассеклось попалам. первое #...# и второе @..., но завершающей собаки нет. потому он и писал ошибку о @
PM MAIL WWW   Вверх
patap
Дата 22.6.2010, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 5
Всего: 40



bars80080, спасибо, все ясно. Невнимательный))


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
skyboy
Дата 22.6.2010, 21:04 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



не "завершающей собаки нет", а все, что после второго ограничителя("#") считается модификатором. о чем и говорит сообщение об ошибке:

Цитата(patap @  22.6.2010,  13:54 Найти цитируемый пост)
Unknown modifier '@


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.