Регулярка для выдергивания id
Правда код на php, но особой разницы нет.
У меня имеется строка s: $s='<h3 class="part">Что это?<?=$this->lang[5];?></h3><h3 class="part">Что это?<?=$this->lang[12];?></h3>'; Необходимо из элементов <?=$this->lang[5];?> вытащить id, в данном случае 5. Пишу следующую регулярку: preg_match_all("/(?<=\<\?=$this->lang\[)\d*(?=\])/i", $s, $matches); На выходе $matches[0] выдает пустой массив, а хотелось бы array(5,12). Подскажите, где я накосячил с регуляркой? Заранее спасибо. |
1. Вот < в регулярке Вы заэкранировали, а $ почему-то не стали. А ведь первое не является управляющим символом регэкспов, в отличие от второго.
|
B@rmaley.e><e,
заменил на preg_match_all("/(?<=<\?=\$this->lang\[)\d*(?=\])/i", $s, $matches);результат остался прежним, не находит. Где я еще мог закосячиться? Если имеет значение, длина строки $s сопоставима с длиной html кода страницы, в данный момент порядка 15000 символов. UPD: Работает данный вариант: preg_match_all("/(?<=this->lang\[)\d*(?=\])/i", $s, $matches) |
Часовой пояс GMT +3, время: 00:22. |