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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Переменные в regexp

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: как использовать?
kerfi
Отправлено: 10 Декабря, 2009 - 14:10:45
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Можно ли использовать переменную в регулярных выражениях возможностями PHP?
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $str            = 'abcdef';
  3. $sub_str        = 'abc';
  4. preg_match("/\$sub_str/", $str); //Не работает


ps: это нужно для реализации задачи: проверить есть ли линка на сайте в формате:
CODE (text):
скопировать код в буфер обмена
  1. <a href="$url">$desc</a>

(Отредактировано автором: 10 Декабря, 2009 - 14:14:47)

 
 Top
Мелкий Супермодератор
Отправлено: 10 Декабря, 2009 - 14:23:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




А зачем вы $ экранируете?
preg_match("/$sub_str/", $str);
так находит.


-----
PostgreSQL DBA
 
 Top
kerfi
Отправлено: 12 Декабря, 2009 - 22:51:05
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Мелкий пишет:
А зачем вы $ экранируете?
preg_match("/$sub_str/", $str);
так находит.


Нет не находит конечно. $ - в регулярных выражениях это конец строки.
Решение:
CODE (text):
скопировать код в буфер обмена
  1.  
  2.  
  3. preg_match("/". $sub_str."/", $str);
  4.  
 
 Top
Champion Супермодератор
Отправлено: 13 Декабря, 2009 - 09:37:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




kerfi пишет:
Нет не находит конечно. $ - в регулярных выражениях это конец строки.
Нет, находит. Потому что никакого $ в строке не будет. Сначала PHP подставит в строку переменную, потом то, что получится, отдаст на съедение preg_match.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB