Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Регулярные выражения > Регэксп не ищет как предполагалось


Автор: MakTpaxep 17.5.2011, 12:01
Код

/<p class="[cf][^"]*(?!t)">.*<\/p>/

находит
такие строки
Код

<p class="c-text-quadre-sagnat">qweqwe</p>
<p class="f-text-quadre-sagnat">qweqwe</p>

хотя я явно указал, что если последний символ в двойных кавычках t, то не надо искать

Автор: sir_nuf_nuf 17.5.2011, 12:04
Код

/<p class="[cf][^"]*[^t]">.*<\/p>/

Автор: MakTpaxep 17.5.2011, 13:40
Тоже выход, спасибо!
А если потребуется отсеивать по слову sagnat - шесть квадратных скобок запарно, да и мне вообще интересно понять где я ошибся в своём примере.

Кажись понял - скорее всего сработает (?<=t) 

Автор: Pfailed 17.5.2011, 14:10
Здесь больше подходит заглядывание назад
Код

/"[cf][^"]*"(?<!t")/


В вашем заглядывании вперед выражению (?!t) удовлетворяет кавычка, я полагаю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)