Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: значение переменной в шаблоне регулярного выражения
 
 автор: AndreyT   (29.12.2009 в 17:33)   письмо автору
 
 

можно ли поставить значение переменной в шаблоне регулярного выражения
пример

var x = znach;
var reg = /znach(.*);/;

так не получается

  Ответить  
 
 автор: Loki   (29.12.2009 в 17:58)   письмо автору
 
   для: AndreyT   (29.12.2009 в 17:33)
 

вы на каком языке-то пишете?

  Ответить  
 
 автор: cheops   (29.12.2009 в 20:23)   письмо автору
 
   для: AndreyT   (29.12.2009 в 17:33)
 

Это JavaScript?

  Ответить  
 
 автор: AndreyT   (29.12.2009 в 22:32)   письмо автору
 
   для: cheops   (29.12.2009 в 20:23)
 

да javascript, нужно чтоб значение переменной входило в шаблон регулярного выражения

  Ответить  
 
 автор: sl1p   (30.12.2009 в 04:43)   письмо автору
 
   для: AndreyT   (29.12.2009 в 22:32)
 

var reg = new RegExp(znach + "(.*)");

  Ответить  
 
 автор: manu   (14.01.2010 в 22:28)   письмо автору
 
   для: sl1p   (30.12.2009 в 04:43)
 

А возвращаясь к вопросу, можно ли ставить значения переменной в шаблоне регулярных выражений на PHP. Например :
$arret=preg_grep("/$_GET["familia"]/",$ar);

  Ответить  
 
 автор: big-trot   (14.01.2010 в 22:39)   письмо автору
 
   для: manu   (14.01.2010 в 22:28)
 

можно

  Ответить  
 
 автор: manu   (14.01.2010 в 22:40)   письмо автору
 
   для: big-trot   (14.01.2010 в 22:39)
 

И не подскажете синтаксис правильный, А то ошибку выдает когда так пишу. не пойму в чем

  Ответить  
 
 автор: big-trot   (14.01.2010 в 22:51)   письмо автору
 
   для: manu   (14.01.2010 в 22:40)
 

У вас кавычки в кавычках, замените на апострофы,
например

$arret=preg_grep("/$_GET['familia']/",$ar);

  Ответить  
 
 автор: manu   (14.01.2010 в 22:57)   письмо автору
 
   для: big-trot   (14.01.2010 в 22:51)
 

Все равно ошибку синтаксическую выдает(((

  Ответить  
 
 автор: big-trot   (14.01.2010 в 23:31)   письмо автору
 
   для: manu   (14.01.2010 в 22:57)
 

Возможно содержимое переменной не является валидным регулярным выражением.
Вот пример, который работает

$str = '[dbimg id="187" w="100" h="100"]';
$str1 = 'id';
preg_match("|$str1|",$str,$arr);


А вот пример который не работает

$str = '[dbimg id="187" w="100" h="100"]';
$str1 = 'id[]';
preg_match("|$str1|",$str,$arr);


Потому что в переменной $str1 не правильно записано регулярное выражение

  Ответить  
 
 автор: manu   (14.01.2010 в 23:37)   письмо автору
 
   для: big-trot   (14.01.2010 в 23:31)
 

Спасибо))

  Ответить  
 
 автор: heed   (15.01.2010 в 01:04)   письмо автору
 
   для: manu   (14.01.2010 в 23:37)
 

обычно приходится использовать $str = preg_quote($str), чтобы переменная '....' искала только точки

string preg_quote ( string $str [, string $delimiter= NULL ] )

preg_quote() takes str and puts a backslash in front of every character that is part of the regular expression syntax. This is useful if you have a run-time string that you need to match in some text and the string may contain special regex characters.

The special regular expression characters are: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования