Forum Webscript.Ru

Программирование => Регулярные выражения => Тема начата: stanlee от 25 Февраля 2004, 15:14:59

Название: Не могу зацепиться
Отправлено: stanlee от 25 Февраля 2004, 15:14:59
в страницу есть такое место
              

пытаюсь зацепиться таким способом
"/>(\\w+)+\\r\\n+[^>]*+<\\/option>/"
мне нужно выцепить то что между

не получается
подскажите плз где ошибка
Название: Не могу зацепиться
Отправлено: Макс от 25 Февраля 2004, 15:40:59
/(?<=\\>)[^<>]+?(?=<\\/option>)/s
Название: Не могу зацепиться
Отправлено: Макс от 25 Февраля 2004, 15:47:24
тут форум опять пару лишних пробелов вставил. Сам найдешь где ?

ЗЫ
Yukko, я помню ты про слеши говорил (http://forums.webscript.ru/showthread.php?s=&postid=101778#post101778), но судя по тому сообщению это сработает только при тегах [ php].
Название: Не могу зацепиться
Отправлено: metton от 25 Февраля 2004, 15:53:55
Макс
Я пока не очень разобрался с заглядывающими утверждениями. Объясни плз почему в данном случае ты их использовал?

Лучше ли они чем-то такого:
/([^<>]+?)<\\/option>/s
Название: Не могу зацепиться
Отправлено: stanlee от 25 Февраля 2004, 16:06:15
хм
регулярка мое слабое место
но я не пойму как загнать то что получилось в функцию

плз подскажи еще раз

$result = preg_replace("/(?<=\\> )[^<>]+?(?=<\\/option> )/s","функция(\\"собстно че вставлять???\\")", $result);
Название: Не могу зацепиться
Отправлено: Макс от 25 Февраля 2004, 16:11:05
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

)

причем одно из значений - лишнее.
Название: Не могу зацепиться
Отправлено: Макс от 25 Февраля 2004, 16:16:17
stanlee
объясни, зачем тебе функцию использовать ?
Что ты хочешь сделать ?
Название: Не могу зацепиться
Отправлено: metton от 25 Февраля 2004, 16:19:36
Макс
Хм... А на perl у меня одно соответствие находит. А как так на PHP Получается?!
Название: Не могу зацепиться
Отправлено: Макс от 25 Февраля 2004, 16:32:44
metton
да, действительно.
Насколько я понимаю, то что ПХП хранит в массиве с индексом 0, перл это помещает в переменную $&

Вот 2 кода на перл:
# мой
$a =~ /(?<=\\>)[^<>]+?(?=<\\/option>)/s;
print $&;
print "\\n";
print $1;

#твой
$a =~ /([^<>]+?)<\\/option>/s;
print $&;
print "\\n";
print $1;
Название: Не могу зацепиться
Отправлено: metton от 26 Февраля 2004, 00:29:26
Паянт. Хотя странно, что, как получается (?), заглядывающие утверждения как бы не являются частью шаблона? (Может, не так выразился :rolleyes: ) Это я к тому, что части строки, им соответствующие не присутствуют в строке, соответствующей всему шаблону.