Господа, или у меня помутнение рассудка - или я действительно не понимаю регулярные выражения. Собственно, вот код:
| Код | <pre> <?php $str="['i']['hate']['regularexpressing']";
// вариант 1, необходимый preg_match_all("#(\['(\w*?)'\])*#",$str,$mt); print_r($mt);
// вариант 2, бесполезный preg_match_all("#('(\w*?)')*#",$str,$mt); print_r($mt);
?>
|
И запустив его на своей машине, вы увидите, что нужный мне вариант выхватывает только последнюю группу, игнорируя остальные. А вариант без квадратных скобок захватывает все нужные вхождения. По подозрению здесь дело в двух подряд идущих символах в регулярном выражении, но как решить эту проблему - не имею понятия. И проблема ли это вообще? |