1. Администрация SafeZone приветствует вас на нашем форуме!
    Если вы больше не желаете видеть рекламу при просмотре тем и сообщений - то достаточно просто зарегистрироваться. Для зарегистрированных пользователей реклама не отображается.
    Если у вас возникли проблемы с регистрацией на форуме - то вы можете сообщить об этом с помощью этой формы без авторизации,администрация форума обязательно отреагирует на вашу проблему.
    Скрыть объявление

ReplaceByRegular 1.8.2

Замена текста через регулярные выражения во множестве файлов

  1. Dragokas
    =======================================
    ReplaceByRegular by Dragokas
    =======================================

    - Скрипт для замены текста во множестве файлов согласно регулярным выражениям.

    Состав:
    Regular.txt - список замен
    ReplaceByRegular.vbs - сам скрипт
    Readme.txt - этот файл.

    Как пользоваться?

    1)
    Копируете файл Regular.txt и ReplaceByRegular.vbs
    в папку, где нужно рекурсивно (с подкаталогами) провести замены текста.

    Текст может быть в кодировках:
    - ANSI
    - UTF-8

    2)
    Откройте Regular.txt (должен лежать рядом со скриптом).
    Создайте перечень замен вида:

    word1=Что ищем1
    word2=Чем заменяем1
    word1=Что ищем2
    word2=Чем заменяем2

    где каждому word1= соостветствует word2=, который под ним находится.
    Так, Вы можете сделать одновременно несколько разных замен.

    word1= принимает для поиска регулярное выражение (писать после знака равенства).
    word2= принимает текст, на который будет произведена замена части, найденной регуляркой, указанной в word1=

    3) Запускаем скрипт ReplaceByRegular.vbs

    Отчет о заменах будет создан в виде файла Replace - log.log рядом со скриптом.

    --------------
    Настройки
    --------------

    1) Список расширений

    Скрипт обрабатывает только файлы с расширениями, список которых указан в его шапке.
    Правый клик по файлу ReplaceByRegular.vbs -> "Изменить"
    Смотрим сюда (строка 5):

    Dim Exts: Exts = "htm;html;txt"

    2) Замена с учетом регистра букв.
    Если Вы хотите отключить учет регистра при поиске по регулярному выражению:
    Правый клик по файлу ReplaceByRegular.vbs -> "Изменить"
    Смотрим сюда (строка 11):

    Dim IgnoreCase: IgnoreCase = false

    и меняем false на true


    ---------------

    В word2 действуют некоторые правила экранирования. Так:

    \\ будет заменен на \
    \^ будет заменен на ^
    \$ будет заменен на $
    \* будет заменен на *
    \+ будет заменен на +
    \? будет заменен на ?
    \. будет заменен на .
    \| будет заменен на |
    \n будет заменен на новую строку
    \r будет заменен на перевод каретки
    \t будет заменен на знак табуляции

    Также есть 2 специальные замены:

    1)

    $$$file$$$ будет заменено на имя файла (+ расширение имени), в котором найдена искомая фраза.

    Например, если файл назывался my.txt
    а шаблоны такие:
    word1=\<a href="default\.htm"\>
    word2=<a href="$$$file$$$">

    то
    <a href="default.htm">
    будет заменено на:
    <a href="my.txt">

    2)

    \@{{{utf8toANSI}}}

    означает, что искомая фраза будет перекодирована из кодировки utf-8 в ANSI,
    где \@ - это подстановка искомой фразы.


    Например, имеем текст в utf-8:
    <title>Привет, regist</title>

    После применения шаблона:
    word1=<title>[^<]*</title>
    word2=\@{{{utf8toANSI}}}

    Результат будет ANSI-строка:
    <title>Привет, regist</title>

    3)

    \@{{{ANSItoUTF8}}}

    означает, что искомая фраза будет перекодирована из кодировки ANSI в utf-8,
    где \@ - это подстановка искомой фразы.

    Например, имеем текст в ANSI:
    <title>Привет, regist</title>

    После применения шаблона:
    word1=<title>[^<]*</title>
    word2="\@"{{{ANSItoUTF8}}}

    Результат будет UTF-8 строка (в кавычках):
    "<title>Привет, regist</title>"

    Обратите внимание, метка BOM автоматически не добавляется.
    Некоторые редакторы могут неверно распознать исходный формат текстового файла.

    Скрипт сподвигнул написать regist.
    Оказать помощь разработчику:
    Яндекс.Деньги - 410011191892975
    WebMoney:
    WMR - R963062285529
    WMU - U255991192954
    WMZ - Z389963582741