Удаление строк в текстовых документах по маске

Собственно столкнулся с такой задачей как ‐ русификация одного китайского движка для сайтов... Появилась необходимость в удалении строк типа:
/* ????123 */, /* ????456 */, /* ??789 */, а также {* ????123 *}, {* ????456 *}, {* ??789 *}. 
И так, мы имеем около сотни файлов с различными расширениями и содержащими избыточную информацию. Автоматизируем удаление строк с помощью программы TextCrawler, данная программа позволит обойти все папки с файлами и удалить нужные строки по маске.

Все просто... В поле RegEx пишем маску для строки {* ??????строка?????? *}
она выглядит так \{\*.+ и означает следующее - найди строку начинающуюся с {* (пишем как -  \{\* т.к. косая черта и звездочка воспринимается регулярным выражение как спецсимволы, модификаторы, мы их экранируем обратной косой чертой \ ). Точка и плюс означает что берем всю строку до конца...  Поле Replace оставляем пустым. Жмем Find. Получаем список найденных файлов. Выделяя каждый из файлов в списке, мы можем ознакомиться с найденными в нем строками... Отмечаем нужные нам файлы "галочкой". Для того чтобы выбрать все файлы - нажимаем на список, жмем Ctrl_A, после этого весь список будет выделен... Жмем на любое из окошек для "галочки" - таким образом будут отмечены все!

Для удаления строки /* ??????????строка??????? */ использовал шаблон \/\*.*?\*\/

ВНИМАНИЕ в данном случае, конструкция -  .*? означает:

. - пропуск символа
* - 0 или более повторений символов
? - данный шаблон не жадный (тоесть если строка /*привет_мир*/привет_мир*/ будет найдено первое вхождение /*привет_мир*/ а следующая звездочка и черта отброшена)...


Шаблон <div id=1>.*</div> - жадный, возьмет всю строку до последнего вхождения (например <div id=1><div id=1><div id=1>привет</div></div></div>)

В данном случае шаблоны работают с одинарными строками и конструкции типа
/*
строка 1
строка 2
*/
не сработают... Для вашего случая возможно придется написать свой шаблон...
Проверить шаблон можно как в самой программе, которая позволяет их сохранять и тестировать, так и на сайте http://gskinner.com/RegExr/

Если вам не нужна замена по шаблону, а просто необходимо заменить во всех документах определенную строку (например строку 123 на 321) работаем со вкладкой Standard.

Комментариев нет:

Отправить комментарий