Вопрос по регулярке

Статус
В этой теме нельзя размещать новые ответы.

kkkoopp

Постоялец
Регистрация
18 Май 2010
Сообщения
120
Реакции
24
Возник затык на ровном месте, не могу понять как указать в регулярном выражении "не последовательность", с "не символ" все понятно, можно указать так:

[^<]+ - все, кроме символа <

Но мне нужно до последовательности </a>
Если указать [^</a>]+, то так не катит, оно в последовательности </a> каждый символ рассматривает отдельно.

Каким образом можно указать регулярному выражению "все до последовательности </a>"?
 
zek24, абсолютно не согласен: во-первых использование lookarround не оправданно, а во-вторых, в контексте вопроса регулярка работает не так как нужно

d210507759119a5fd60f5146326a4f50.png


Заметьте, что в совпавшем тексте есть комбинации </a>. Правильная регулярка следующая:

[\W\w]*?</a>

В этом случае попадёт текст без </a>, так как регулярное выражение останавливается на первом появлении этой комбинации.
 
xpert13, а может все же согласишься))
Была задача Каким образом можно указать регулярному выражению "все до последовательности </a>"?
На самом деле оба решения не идеальны
Твое решение[\W\w]*?</a> захватывает и </a> находящиеся внутри и "крайний"
d951209aa68d2288b39bc5245b20b083.png

Мое решение .*(?=</a>) не включает последний а, но жадное
0faf250bd4c188bed20e19f736fb3919.png

Делаем его ленивым .*?(?=</a>) и вуаля - берется "все до последовательности </a>"?
518836f9c572f814c93eeed38553b4ab.png
 
Твое решение[\W\w]*?</a> захватывает и </a> находящиеся внутри и "крайний"
Давно и много работаю с регекспами и честно говоря всегда выхожу из ситуации "разделение нужного от ненужного" формированием групп: это проще для восприятия, да и регулярка короче.

Но не суть, я понял почему мы не поняли друг друга сначала: тебе показалось, что автор спрашивал как не захватить конечный </a> в результат работы выражения, а мне - как дойти до первого совпадения такой комбинации. В любом случае ответ на этот вопрос есть в теме, автор пусть сам выбирает, что ему больше подходит.

Остальным рекомендую показывать на примерах, что именно они хотят получить, чтобы нам было проще отвечать на такие вопросы и не раздувать простые темы до десятка сообщений.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху