Страница 1 из 1
-list:actions.txt : Регулярные выражения в замене
Добавлено: 03 сен 2015, 16:31
dikbsd
Никак не получается при использовании файла списка поиска и замен делать замены регулярными выражениями такого вида:
Код: Выделить всё
-sre:"(<lang>)(\s*)(RU-ru|Rus)(\s*)(</lang>)" -t:"\1ru\5"
результат получается таким:
Если замену сделать такой:
то результат будет таким:
По-видимому, утилита не умеет работать с заменой найденного регулярными выражениями? Есть только поиск с использованием регулярных выражений, а замена - просто текстом?
Или я неверно что-то делаю? Может, вместо
нужно использовать другой параметр?
Замена с использованием регулярных выражений
Добавлено: 03 сен 2015, 16:44
dikbsd
Никак не получается сделать следующую замену с помощью регулярных выражений с использованием списка поиска и замен:
Код: Выделить всё
-sre:"(<lang>)(\s*)(RU-ru|Rus)(\s*)(</lang>)" -t:"\1ru\5"
Вместо
получается следующее:
Если вместо
подставить
, то получает следующее:
Такое впечатление, что утилита не умеет делать замены найденного с помощью регулярных выражений.
Или я что-то не то делаю. Может, вместо
надо для замен использовать иной параметр?
-list и замена текста
Добавлено: 04 сен 2015, 15:00
dikbsd
Уже 3-й раз создаю эту тему - надеюсь, что теперь она появится в списке тем...
Суть проблемы такова: есть файл actions.txt, в котором находится список регулярных выражений для поиска / замен в файлах.
Например:
Код: Выделить всё
-sre:"(<lang>)(\s*)(RU-ru|Rus)(\s*)(</lang>)" -i -t:"\1ru\5"
После выполнения команды:
Код: Выделить всё
nhrplc.exe -list:actions.txt -notitle -i -r -o:d *.txt
в файлах вместо ожидаемого
появляется
Замена подстановки на
не помогает - результат
Или я что-то не то делаю, возможно вместо ключа
-t надо использовать что-то еще. Или - утилита
nhrplc.exe не умеет делать замену именно с помощью регулярных выражений, а только может искать с их помощью.
Подскажите, в чем дело.
Спасибо.
Re: Замена с использованием регулярных выражений
Добавлено: 05 сен 2015, 14:39
nhutils
Здравствуйте, прошу извинить за задержку с премодерацией вашей темы.
Вы правы, на данный момент "утилита nhrplc.exe не умеет делать замену именно с помощью регулярных выражений, а только может искать с их помощью." Соответственно, -t задает фиксированный текст, подставляемый вместо найденного регулярного выражения.
Добавляем функцию замены с помощью регулярных выражений в план будущих версий.
Re: Замена с использованием регулярных выражений
Добавлено: 06 сен 2015, 09:31
dikbsd
Спасибо за ответ. Я как-то не сообразил сразу, что тема должна пройти модерацию, подумал, что какой-то баг на форуме - и трижды пытался создать одну и ту же тему...
Ваша утилита очень удобна: версия sed доя Windows глючит часто, grep - только ищет.
Если бы вы в развитии своей утилиты вы добавили и замену регулярными выражениями - цены бы ей не было...
Спасибо за планы по этой реализации. Буду ждать...
Re: Замена с использованием регулярных выражений
Добавлено: 01 окт 2015, 17:03
nhutils
Замена с использованием регулярного выражения добавлена в версии
nhreplace v2.8.0
Re: Замена с использованием регулярных выражений
Добавлено: 20 окт 2015, 11:23
dikbsd
Спасибо!
Скажите, а утилита не поддерживает группировки вида (?!), (?<=), (?=), (?!) и им подобные?
Нет ли у вас описания, какие возможности регулярных выражений поддерживает утилита?
Re: Замена с использованием регулярных выражений
Добавлено: 20 окт 2015, 19:25
nhutils