За последние 24 часа нас посетили 17253 программиста и 1223 робота. Сейчас ищут 1482 программиста ...

regex: отсутствие слова в тегах

Тема в разделе "Регулярные выражения", создана пользователем antonn, 23 янв 2008.

  1. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    мега вопрос - как составить шаблон, который внутри своих тегов не содержит определенное слово? :)
    например внутри тегов "w" не должно быть слова "очень":
    [w]много текста[w] - гуд
    [w]очень много текста[w] - бэд

    причем нужно отсеить такой вариант именно на шаге сверки шаблона, т.е. я могу конечно сделать callback и там уже даже простым strpos проверить, есть ли в тексте м/у тегами слова, но тогда будет произведен захват символов тегов [w] и следующий проход их не учтет. вся фигня начинает проявляться так:
    [w] очень много текста[w]мало текста[w] - будет захват первого блока, он отсеится, но следующий шаг пойдет от:
    "мало текста[w]" - ессно ничего не найдется, т.к. тег один. даже делая (?:\[w\]) тег захватывается...

    вроде бы решение должно быть простое, но я не пойму, как его реализовать...
    #(\[w\])(.*?)(\[w\])#i заберет все что м/у тегов, это понятно, а как его улучшить?