|
|
|
| Скажите, почему в этом случаи скрипт работает корректно (выводится 3):
<?php
$str = "a bb cc ddd eee fff";
$i = 3;
echo preg_match_all("|\b[\w]{".$i."}\b|", $str, $arr);
?>
|
А в этом случаи скрипт не работает(выводится 0):
<?php
$str = "a bb cc ddd eee fff";
$i = 3;
echo preg_match_all("|\b[\w]{$i}\b|", $str, $arr);
?>
|
По какому правилу нужно вставлять переменные в регулярные выражения, чтобы они интерполировались? | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(08.07.2009 в 17:20)
| | Во втором случае фигурные кавычки и знак доллра являются управляющими символами для регулярного выражения. Применять надо первый вариант. | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(08.07.2009 в 17:20)
| | Они и интерполируются. Фигурные скобки в результате исчезают.
А они, очевидно, Вам нужны в самом шаблоне. | |
|
|
|
|
|
|
|
для: Trianon
(08.07.2009 в 18:03)
| | Большое спасибо за ответ! Действительно, фигурные скобки пропадют. А если их продублировать, то скрипт работает!!
<?php
$str = "a bb cc ddd eee fff";
$i = 3;
echo preg_match_all("|\b[\w]{{$i}}\b|", $str, $arr);
?>
|
| |
|
|
|