Поиск строк несодержащие указанное слово

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

Статус темы:
Закрыта.
Модераторы: xpert13
  1. hib

    hib Постоялец

    Регистр.:
    4 окт 2007
    Сообщения:
    86
    Симпатии:
    17
    В общем помогите решить следующую задачу с помощью регулярщины.

    Необходимо найти все строки в тексте, которые не содержат указанное слово.

    Какие будут соображения? Пока Фридла пойду почетаю :)
     
  2. Piflit

    Piflit Создатель

    Регистр.:
    7 июн 2008
    Сообщения:
    24
    Симпатии:
    4
    perl:
    unless($str =~ /pattern/) {}
    if($str !~ /pattern/) {}

    php:
    if(!preg_match()) {}
     
  3. General Fizz

    General Fizz Боевой Генерал :)

    Регистр.:
    11 апр 2007
    Сообщения:
    753
    Симпатии:
    396
    Если возможно отдельно обработать текст - заряжай TextPipe Pro.
     
  4. hib

    hib Постоялец

    Регистр.:
    4 окт 2007
    Сообщения:
    86
    Симпатии:
    17
    за пхп и перл спасибо конечно. Но хотелось бы именно регулярным выражением.
     
  5. sens7

    sens7 Постоялец

    Регистр.:
    9 авг 2008
    Сообщения:
    51
    Симпатии:
    7
    можно на шелле =
    cat ДОКУМЕНТ | grep -v "слово"
    =)
     
  6. B1rdEX

    B1rdEX Постоялец

    Регистр.:
    30 июн 2008
    Сообщения:
    141
    Симпатии:
    26
    PHP:
    if ( ! preg_match"/.*(твое_слово).*/i" ) ) { // модификатор i чтобы без учета регистра
    //действия
    }
    прогнать каждую строку сможешь? )
     
  7. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    На чисто регулярном выражении:
    Код:
    (?mi)^(?:(?!слово).)*$
    
     
    hib нравится это.
  8. hib

    hib Постоялец

    Регистр.:
    4 окт 2007
    Сообщения:
    86
    Симпатии:
    17
    о, да

    Молодец, RolCom. То что надо. ;)
    Правда я уже сам откопал ответ по сабжу, все никак руки не доходили отчитаться здесь.

    Нашел отличную статью - "Учимся регулярно выражаться". Там и нашел ответ на сабж - позициионную проверку на отсутсвие совпадения. Ещё раз, спасибо.
     
  9. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    Я по Фридлу учил :) Вещ, там и механзм работы выражений, и многое другое обьясняется.
     
    elcaste нравится это.
Статус темы:
Закрыта.