Регулярное выражение и замена только выбранных результатов

Я хочу знать, есть ли какой-либо инструмент, который выполняет поиск регулярных выражений по огромному тексту (xml, с тегами или html) и заменяет только те случаи, которые выбраны из показанных (должен иметь параметры «выбрать/отменить выбор/выбрать все» при применении замены регулярное выражение).

Как в приведенном ниже примере:

Мой контент:

"Visited xtreme.com, stupid.net, childish.com, happy.net and innocence.edu. There are some cross.network isssues that are to be fixed."

Теперь в этом содержании я хочу заменить все вхождения «.net» на «.com», и поэтому простой инструмент, такой как notepad ++, легко заменит его. Но я хочу, чтобы инструмент показывал результаты поиска и давал возможность заменить только первые два вхождения «.net», а не экземпляр в «cross.network».

Это только пример и не предлагает альтернативное регулярное выражение. Мне это не нужно.


person Suman Kumar Chalavadi    schedule 03.06.2016    source источник
comment
Вы можете использовать границу слова \.net\b, чтобы выбрать/заменить только те, у которых нет символов слова в конце, с помощью регулярного выражения. Не знаю, есть ли первые два в np++, но вы можете просто нажать «Найти далее» и нажать «Заменить», если это совпадение нужно заменить.   -  person bobble bubble    schedule 03.06.2016
comment
Приведенный выше пример предназначен только для понимания. Мне не нужно альтернативное регулярное выражение. NP++ хорош с опцией «Найти далее», но этого недостаточно для огромных данных с более чем 1000+ вхождений.   -  person Suman Kumar Chalavadi    schedule 03.06.2016
comment
вы можете попробовать такие инструменты, как AstroGrep и DocFetcher   -  person Rishabh Gupta    schedule 03.06.2016


Ответы (2)


NP++ или возвышенное — все в порядке, если они могут прочитать весь текст в память. Оба они поддерживают регулярные выражения для поиска и замены текста.

Если текстовые файлы слишком большие, т.е. NP++ дает сбой, то можно использовать sed. Это инструмент командной строки, который может заменить такой текст:

sed -i filename.txt 's/pattern/replacement/g'

В окнах вам понадобится mingw или cygwin, чтобы запустить его.

person Tamas Rev    schedule 03.06.2016

Используйте текстовый редактор, например sublime, и примените границу слова к регулярному выражению:

\.net\b

Это найдет .net в stupid.net, но не в cross.network.
См. демонстрацию на regex101.com< /сильный>.

person Jan    schedule 03.06.2016