поиск-замена с использованием регулярных выражений

Тема в разделе "Функции и интерфейс программы", создана пользователем Lama, 9 дек 2014.

  1. Lama

    Lama New Member Пользователи

    Регистрация:
    24 окт 2013
    Сообщения:
    8
    Здравствуйте.

    В Content Downloader у меня не корректно работает поиск-замена с использованием регулярных выражений.

    собственно регулярное выражение
    Код:
    (^.*ПОИСК_ФРАЗЫ.*$)
    ДОБАВИТЬ_В_НАЧАЛО\1ДОБАВИТЬ_В_КОНЕЦ
    так же заметил что иногда не срабатывает символ отвечающий за "ленивость" (было пару раз, как выглядит код не покажу)
    Код:
    ? - символ ленивости т.е. захват отдельных объектов, а не всего текста\строки
    Хотелось бы узнать это фича или мои прямые руки

    P.S. данный пример в опен офисе и нотепад++ работает на ура
     
    Последнее редактирование: 9 дек 2014
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Будет фичей пока не приведете пример кода или текста с которого хотите захватить совпадение по регулярному выражению.

    При таком регулярном выражении заменим на пусто тоесть удалим при совпадении
    Код:
    re:^.*(УдАляЕм).*$|
    УдАляЕм - отмечу что регистрозависимо в регулярках
    удаляем - значит при таком наличии слова в тексте не сработает регулярка

    п.с. в новых версиях программы недавно добавлена функция донастраивания регулярных выражений (Главное меню -> «настройка» -> «опции программы» -> вкладка «RegExpr») где можно отключить регистрозависимость, подробнее в справке Ссылки недоступны для гостей
     
    Последнее редактирование: 9 дек 2014
  3. Lama

    Lama New Member Пользователи

    Регистрация:
    24 окт 2013
    Сообщения:
    8
    в настройках регулярных выражений стоит
    Код:
    gsr-imx
    Судя по всему не правильно поняли
    использовав в поиске
    Код:
    (^.*УдАляЕм.*$)
    пример:
    Код:
    шла саша УдАляЕм по шоссе
    мы находим и выделяем для замены всю строчку где есть слово "УдАляЕм"
    при постановки "\1" вставляется вся искомая строчка, в замену ставим
    Код:
    КРАСНАЯ \1 ЗЕЛЕНАЯ
    на выходе:
    Код:
    КРАСНАЯ шла саша УдАляЕм по шоссе ЗЕЛЕНАЯ
    но как и писал работает в опен офисе и нотепад++ а в Content Downloader нет

    в реальном примере: (сокращенный вид)
    до поиска замены
    Код:
    http://www.rambler.ru/ССЫЛКА
    http://www.yandex.ru/ССЫЛКА
    http://mail.ru/ССЫЛКА
    после поиска-замены что должно быть
    Код:
    [rambler]http://www.rambler.ru/ССЫЛКА[/rambler]
    [yandex]http://www.yandex.ru/ССЫЛКА[/yandex]
    [mail]http://mail.ru/ССЫЛКА[/mail]
    но получаю
    Код:
    [rambler]1[/rambler]
    [yandex]1[/yandex]
    [mail]1[/mail]
    Ссылка(текст) и поиск-замена происходят в "настройках повторяющихся границах" и начинаются с новой строки
     
    Последнее редактирование: 9 дек 2014
  4. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Судя по всему как спросили, в стиле "угадайте что надо сделать именно"
    В CD уже привычно что не работает как в других программах, это и не фишка, разный продукт.
    Достаточно попробовать разные решения не зацикливаясь на "почему не работает"
    Например, альтернативное решение регуляркой попроще:
    Код:
    re:([^\r\n]{0,13})yandex\.ru/([^\r\n]+)|[rambler]$1yandex.ru/$2[/rambler]
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
     
  5. Lama

    Lama New Member Пользователи

    Регистрация:
    24 окт 2013
    Сообщения:
    8
    спасибо за решение вопроса
    для меня нодпад эталон, если работает в нем то должно и везде =)
     
    Последнее редактирование: 9 дек 2014
  6. nikolas1612

    nikolas1612 Member Пользователи

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    что написали, то и получаете, программа здесь не при чем
    \1 действует в первой части замены.
    для второй части используйте $1
     

Поделиться этой страницей