[help]: регулярка для удаления всех строк которые не начинаются с заданных значений

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

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

    zloba00

    Регистр.:
    28 окт 2008
    Сообщения:
    244
    Симпатии:
    34
    Собсно сабж, Помогите составить регулярку, работающую в EditPlus, которая удаляет все строки в документе которые не начинаются с задаyных тегов <tag1>, <eschotag>, <drugoitag>

    т.е пример:

    Код:
    на входе:
    
    <tag1>random text</tag1>
    random text
    <eschotag>random text</eschotag>
    random text
    <drugoitag>random text</drugoitag>
    
    на выходе:
    
    <tag1>random text</tag1>
    <eschotag>random text</eschotag>
    <drugoitag>random text</drugoitag>
    
     
  2. zerdek

    zerdek

    Регистр.:
    29 ноя 2007
    Сообщения:
    346
    Симпатии:
    50
    пользуюсь в Фаре плагином Regular Expression Replace, думаю что регулярка от него и в EditPlus покатит тоже.

    делаем поиск с заменой:
    поиск
    ^<(tag1|eschotag|drugoitag)>

    замена
    <$1>

    еще ставим птичку [x] Remove not matched lines

    ps: а вообще, из-за своей лени, я чаще всего пользуюсь обычным grep-ом(без регулярок). хотя в некоторых его разновидностях регулярки есть.
     
  3. zloba00

    zloba00

    Регистр.:
    28 окт 2008
    Сообщения:
    244
    Симпатии:
    34
    Ну оно работает не корректно в editplus:

    Код:
    на входе:
    <tag1>random text</tag1>
    random text
    <eschotag>random text</eschotag>
    random text
    <drugoitag>random text</drugoitag>
    
    на выходе:
    <$1>random text</tag1>
    random text
    <$1>random text</eschotag>
    random text
    <$1>random text</drugoitag>
    
    Может есть редактор в котором он работает наверняка правильно?
     
  4. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    zloba00 чёта долблюсь долблюсь никак регулярка неполучается ... :D заколдованная какаято ... та что выше естественно нерабочая ...

    Я в таком случае пользуюсь вот этой мощьной софтиной http://www.nulled.ws/showthread.php?t=8222&highlight=textpipepro

    Тебе поможет встроенный фильтр "Удалить несогласующиеся строки"

    Если ктото осилит регулярку .. напишите .. интересно ... :D
     
    zloba00 нравится это.
  5. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    o_nix
    Регулярку то не сложно составить, только посмотрел я этот EditPad, поддержка регулярок там слабая, там действительно извращаться не охота:).
    Вот решение для современных диалектов
    Код:
    (?m)^\s*+(?!<(?:tag1|eschotag|drugoitag)>).*[\r\n]*
    
     
    zloba00 нравится это.
  6. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    RolCom - при такой регулярке хавает только от каждой целевой строки по первому символу ... такое я уже получал когда сам мучался и это было попроще насколько помню ... Запускаю по схеме perl в томже textpipepro

    Или это для запуска в многократном цикле ..??? до тех пор пока небудет поконченно с каждой зловредной буквой в отдельности :)
    В каком скриптовом языке тестил ??? или в какой проге ..??
     
  7. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    Работать будет в прогах от JSoft- PowerGREP, EditPad, RegexBuddy. В PHP, Perl. Для Яваскрипта довести надо немного.
     
Статус темы:
Закрыта.