Программирование > Регулярные выражения
Не могу зацепиться
Макс:
metton
мой пример (php):
preg_match("/(?<=\\\\>\\)[^<>]+?(?=<\\\\/option>\\)/s", $a, $m);
print_r($m);
выведет только одно значение:
--- Код: ---Array
(
[0] => Belgium
)
--- Конец кода ---
твой пример:
preg_match("/([^<>]+?)<\\\\/option>/s", $a, $m);
print_r($m);
выведет:
--- Код: ---Array
(
[0] => Belgium
[1] => Belgium
)
--- Конец кода ---
причем одно из значений - лишнее.
Макс:
stanlee
объясни, зачем тебе функцию использовать ?
Что ты хочешь сделать ?
metton:
Макс
Хм... А на perl у меня одно соответствие находит. А как так на PHP Получается?!
Макс:
metton
да, действительно.
Насколько я понимаю, то что ПХП хранит в массиве с индексом 0, перл это помещает в переменную $&
Вот 2 кода на перл:
--- Код: --- # мой
$a =~ /(?)[^]+?(?=)/s;
print $&;
print "\\n";
print $1;
--- Конец кода ---
--- Код: --- #твой
$a =~ /([^]+?)/s;
print $&;
print "\\n";
print $1;
--- Конец кода ---
metton:
Паянт. Хотя странно, что, как получается (?), заглядывающие утверждения как бы не являются частью шаблона? (Может, не так выразился :rolleyes: ) Это я к тому, что части строки, им соответствующие не присутствуют в строке, соответствующей всему шаблону.
Навигация
Перейти к полной версии