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

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

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

  1. Dragokas
    Онлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    5.071
    Симпатии:
    4.946
    =======================================
    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 = true

    и меняем true на false


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

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

    \\ будет заменен на \
    \^ будет заменен на ^
    \$ будет заменен на $
    \* будет заменен на *
    \+ будет заменен на +
    \? будет заменен на ?
    \. будет заменен на .
    \| будет заменен на |
    \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 автоматически не добавляется.
    Некоторые редакторы могут неверно распознать исходный формат текстового файла.


    P.S. "Я не люблю писать любые виды документации" (© Boban Spasic), но конкретно ЭТУ меня заставил написать regist и я ему это припомню :)
    Вообщем, спасибо ему за разминку мозгов, по причине которой и родился этот скрипт.

    Скрипт сподвигнул написать regist.
     

    Вложения:

    Последнее редактирование: 19 апр 2017
    E100, orderman, Kиpилл и 3 другим нравится это.
  2. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.901
    Симпатии:
    5.540
    лучше по умолчанию отключи учёт регистра букв. Посоветовал скрипт на другом форуме, так отработал не с первого раза из-за того, что title заглавными буквами был написан.
     
  3. Dragokas
    Онлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    5.071
    Симпатии:
    4.946
    Готово.
     
    E100 нравится это.
  4. Dragokas
    Онлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    5.071
    Симпатии:
    4.946
    Обновлено до v1.8.2
    Добавлен шаблон \@{{{ANSItoUTF8}}} - замена кодировки фразы поиска с ANSI на UTF-8.
     
    akok, Kиpилл и E100 нравится это.
  5. Dragokas
    Онлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    5.071
    Симпатии:
    4.946
    Пользователь Dragokas разместил новый ресурс:

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

    Узнать больше об этом ресурсе...
     
    akok нравится это.
  6. akok
    Онлайн

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

    Сообщения:
    13.433
    Симпатии:
    14.592
    А есть возможность добавить GUI?
     
  7. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.901
    Симпатии:
    5.540
    и превратить простенький VBS скрипт который правишь на свой вкус в непонятный .exe на который ещё будут ругаться антивирусы.
    akok, ты хоть пользовался им?
     
  8. Dragokas
    Онлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    5.071
    Симпатии:
    4.946
    akok, можно, но я не сильно люблю клепать интерфейсы, даже простенькие, и это уже будет не скрипт, а программа.
    Если сильно нужно, то сделаю альтернативу.
     
  9. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.901
    Симпатии:
    5.540
    для того чтобы было сильно нужно, надо этим пользоваться. А подозреваю, что это просто была хотелка, что неплохо прикрутить такую свистелку возможно другим она будет нужна.
    А если пользоваться, то там всё очень удобно.
     
  10. akok
    Онлайн

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

    Сообщения:
    13.433
    Симпатии:
    14.592
    Хотелка. Просто посмотри на ситуацию обычного обывателя, им удобнее через интерфейс, обычные юзеры скриптов как огня боятся. А так да, возни много + возможные детекты... если сложно, то пусть будет как есть.
     
    Candellmans нравится это.
  11. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.901
    Симпатии:
    5.540
    akok,
    1) Обычному пользователю который боится скриптов как огня этот скрипт не нужен (ни в виде скрипта ни в виде .exe).
    2) Скрипт проверен на практике и мной и другими пользователями и оказался очень удобным. Собственно он и родился из практической задачи.
    Так что это надуманная хотелка на практике не нужна, а минусы имеет.
    --- Объединённое сообщение, 19 апр 2017, Дата первоначального сообщения: 19 апр 2017 ---
    не возможные, а гарантированные. Прога по поведению ведь похожа на шифратор. И детекты на подобные утилиты есть даже на широко и давно используемые.
     

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