Описание команды


regex

Тестирование регулярных выражений и параметров TCIMG.

regex=Param

Параметры:

ParamПараметры. Возможны варианты:
  x - запуск приложения.

  List||Path - позволяет конвертировать шаблоны программы RegExp для использовании в команде regex, где:
    List - путь к списку файлов шаблонов RegExp.
    Path - путь, где сохранять новые шаблоны.

Примечания:

Приложение предназначено для теста регулярных выражений AutoIt3 (движок PCRE).
А так же для тестирования некоторых параметров TCIMG.

Основные возможности приложения (пункты соответствуют номерам на изображения):

№1. Поле ввода регулярного выражения.
      • Для подсветки кода галочка "Подсветка".
      • Для вставки метасимволов меню №6.
      • Для вставки ранее используемых регулярных выражений меню №8.
      • При нажатии правой кнопкой мыши дополнительное меню редактирования.
      • Подключён Drag-and-Drop (перетаскивание мышью текста из других программ в поле ввода регулярного выражения)


№2. Поле ввода шаблона замены.
      • Для специальных вычислений галочка "Вычислить"
      • Для вставки метасимволов меню №7.
      • Для вставки ранее используемых регулярных выражений меню №9.

№4. Поле ввода текста для поиска.
      • Для вставки (обновлении) текста из сохранённых шаблонов №11 галочка "Обновить"
      • В поле подключён Drag-and-Drop (перетаскивание мышью информации из других программ в поле ввода текста)
      • Можно выбирать 3 режима Drag-and-Drop в элементе №3 :
        - "неотмеченный": позволяет перетаскивать выделенный текст из программ, которые это поддерживают.
        - "с галочкой": позволяет перетаскивать текстовый файл (в поле вставляется его содержимое).
        - "затемнённый": позволяет перетаскивать выделенные объекты (в поле вставляются пути перетаскиваемых объектов).
      • Увеличение и уменьшение шрифта при удержании клавиши CTRL+ колесо мыши

№5. Поле вывода результата.
      • Результат изменяется при нажатии на кнопку №29 "Тест"
      • Результат зависит от режима поиска (№24, №25, №26, №33).
      • Может быть текстом найдено/не найдено, результатом замены, списком элементов или предупреждением об ошибке.
      • Увеличение и уменьшение шрифта при удержании клавиши CTRL+ колесо мыши

№6. Меню вставки метасимволов в поле поиска №1. Клавиша вызова F3.
      • Меню создаётся из файла.
      • Путь файла прописывается в TCIMG.ini в секции [RegEx] в ключе FileMenu1
      • Пример записи: FileMenu1=%TCIMG_PATH%\Files\Ini\RegExMenu1.ini
 Пример синтаксиса файла

; RegExMenu1.ini
; Файл меню вставки метасимволов в шаблон поиска в команде regex
; Кодировка UTF-16 LE 1200
; Синтаксис:
; -----------------------------------
; [Section]
; i=Метасимволы⣿Описание (не обязательно)
; -----------------------------------
; Разделитель символ ⣿ - ChrW(10495) - ⣿ - \28FF - U+28FF
; Метасимволы из секции [1] отображаются в корне меню
; Если в ключе i= ничего не прописано, то в меню вставляется разделитель
; Комментарии в секциях не поддерживаются
; Знак & (амперсанд) необходимо удваивать
; [-] - пустая секция означает разделитель

[1]
i=\r\n
i=[\r\n]
i=(\r\n|\r|\n)
i=[А-яЁё]
i=[^]

[Метасимволы]
i=.любой символ (точка)
i=\hпробел и табуляция [ \t]
i=\Hне пробел и не табуляция [^\h]
i=\Q\E\Qметасимволы как текст\E
i=\eсимвол escape \x1B
i=\fперевод страницы \x0C
i=\zабсолютный конец текста
i=
i=\nперевод строки \x0A
i=\Nне символ переноса [^\n]
i=\rперевод строки \x0D
i=\Rпереносы строки [\n\f\r\v]
i=\tтабуляция \x09
i=\vвертикальная табуляция [\r\n\f]
i=\Vне вертикальная табуляция [^\v]
i=\Gпредыдущий поиск

      


№7. Меню вставки метасимволов в поле замены №2. Клавиша вызова F5.
      • Меню создаётся из файла.
      • Путь файла прописывается в TCIMG.ini в секции [RegEx] в ключе FileMenu2.
      • Пример записи: FileMenu2=%TCIMG_PATH%\Files\Ini\RegExMenu2.ini.
      • Пример синтаксиса файла такой же как и в №6

№8. Меню истории шаблонов поиска для вставки в поле №1. Клавиша вызова F4.
      • Меню создаётся из ранее использованных сохранённых шаблонов регулярных выражений.
      • При нажатии на кнопку №29 "Тест" в меню добавляется текущий шаблон регулярных выражений из поля №1.
      • В истории запоминаются 99 шаблонов.
      • История сохраняется в TCIMG.ini в секции [RegEx] в ключе History1
      • Очистка истории по нажатию клавиш ALT+1

№9. Меню истории шаблонов замены для вставки в поле №2. Клавиша вызова F6.
      • Меню создаётся из ранее использованных сохранённых шаблонов замены.
      • При нажатии на кнопку №29 "Тест" в меню добавляется текущий шаблон замены из поля №2.
      • В истории запоминаются 99 шаблонов.
      • История сохраняется в TCIMG.ini в секции [RegEx] в ключе History2.
      • Очистка истории по нажатию клавиш ALT+2

№10. Меню файлов библиотеки. Клавиша вызова F7.
      • Меню создаётся из файлов .RGX, находящихся в заданной папке (в корне папки или подпапках первого уровня).
      • Путь папки библиотеки прописывается в TCIMG.ini в секции [RegEx] в ключе FolderLib.
      • Пример записи: FolderLib=%TCIMG_PATH%\Files\Library\.
      • В каждом файле .RGX содержатся шаблоны для программы, которые отображаются в виде списка №11.
      • Для создания нового файла воспользуйтесь кнопкой "L" №17.


№11. Список шаблонов из выбранного файла .RGX.
      • При двойном клике мышью на пункте в списке информация шаблона отобразится в программе.
      • Для переименования названия шаблона воспользуйтесь кнопкой №15 или клавишей F2.
      • Для удаления шаблона воспользуйтесь кнопкой №16 или клавишей CTRL+DEL.
      • Для перемещения шаблона удерживая пункт левой кнопкой перенесите в нужную позицию.
      • Для изменения (сохранения) активного шаблона воспользуйтесь кнопкой №13 или клавишей CTRL+F.
      • Для создания нового шаблона шаблона воспользуйтесь кнопкой №14 или клавишей CTRL+G.
      • При нажатии правой кнопкой мыши дополнительное меню шаблона.


№12. Справочная информация.
      • Справка по регулярным выражениям. Клавиша вызова F1.
      • Описание приложения regex. Клавиша вызова F12.
№13. Изменяет (сохраняет) данные активного шаблона. Клавиши вызова CTRL+F.
№14. Добавляет новый шаблон. Клавиши вызова CTRL+G.
№15. Переименовывает название выделенного шаблона. Клавиша вызова F2.
№16. Удаляет выделенный шаблон. Клавиши вызова CTRL+DEL.
№17. Создаёт новый .RGX файл библиотеки. Клавиши вызова CTRL+L.
№18. Тестирование диапазона символов. Клавиши вызова CTRL+T.
      • Строка символов, отображаемых в списке прописывается в TCIMG.ini в секции [RegEx] в ключе ComboText.
№19. Таблица символов charmap.exe. Клавиши вызова CTRL+S.
№20. Перезапуск программы. Клавиши вызова CTRL+R.
№21. Изменяет атрибут окна "Поверх всех окон". Клавиши вызова CTRL+O.
№22. Убирает (очищает) весь текст полей №1, №2, №4, №5. Клавиши вызова CTRL+Q.
№23. Меню тем стиля цвета окна. Клавиша вызова F10.
      • Настройки тем стилей окна прописываются в TCIMG.ini в секции [RegExColor]
 Описание синтаксиса секции [RegExColor]
• В секции [RegExColor] прописываются ключи Key_Window, Key_Search, Key_Replace, Key_Pattern, Key_Result, Key_List, Key_Coder.
• Key_Window - обязательный ключ для создания темы, недостающие значения ключей берутся по умолчанию.
• Вместо приставки Key прописывается имя темы.
• Описание ключей:
   Key_Window=FontName|FontSize|FontWeight|BkColor|TextColor - стиль окна:
     FontName - имя шрифта.
     FontSize - размер шрифта (9,10,11).
     FontWeight - толщина шрифта: 400 - нормальный, 700 - жирный.
     BkColor - RGB цвет фона.
     TextColor - RGB цвет текста.

   Key_Search=FontName|FontSize|FontWeight|BkColor|TextColor|ErrorTextColor - стиль поля ввода шаблона поиска №1:
     FontName - имя шрифта.
     FontSize - размер шрифта.
     FontWeight - толщина шрифта: 400 - нормальный, 700 - жирный.
     BkColor - RGB цвет фона.
     TextColor - RGB цвет текста.
     ErrorTextColor - RGB цвет текста при ошибке регулярного выражения.

   Key_Replace=FontName|FontSize|FontWeight|BkColor|TextColor - стиль поля ввода шаблона замены №2:
     FontName - имя шрифта.
     FontSize - размер шрифта.
     FontWeight - толщина шрифта: 400 - нормальный, 700 - жирный.
     BkColor - RGB цвет фона.
     TextColor - RGB цвет текста.

   Key_Pattern=FontName|FontSize|FontWeight|BkColor|TextColor - стиль поля ввода текста для поиска №4:
     FontName - имя шрифта.
     FontSize - размер шрифта.
     FontWeight - толщина шрифта: 400 - нормальный, 700 - жирный.
     BkColor - RGB цвет фона.
     TextColor - RGB цвет текста.

   Key_Result=FontName|FontSize|FontWeight|BkColor|TextColor|ErrorTextColor - стиль поля вывода результата №5:
     FontName - имя шрифта.
     FontSize - размер шрифта.
     FontWeight - толщина шрифта: 400 - нормальный, 700 - жирный.
     BkColor - RGB цвет фона.
     TextColor - RGB цвет текста.
     ErrorTextColor - RGB цвет текста при ошибке регулярного выражения.

   Key_List=FontName|FontSize|FontWeight|BkColor1|TextColor1|BkColor2|TextColor2|BkColor3|TextColor3 - стиль списка шаблонов №11:
     FontName - имя шрифта.
     FontSize - размер шрифта.
     FontWeight - толщина шрифта: 400 - нормальный, 700 - жирный.
     BkColor1 - RGB цвет фона нечетных пунктов.
     TextColor1 - RGB цвет текста нечетных пунктов.
     BkColor2 - RGB цвет фона четных пунктов.
     TextColor2 - RGB цвет текста четных пунктов.
     BkColor3 - RGB цвет фона выбранного шаблона.
     TextColor3 - RGB цвет текста выбранного шаблона.

   Key_Coder=Color1.0|Color1.1|Color2.0|Color2.1|Color3.0|Color3.1|Color4|Color5|...|Color15 - стиль подсветки регулярного выражения в поле №1:
     Color1.0 - RGB1 цвет скобок (...)
     Color1.1 - RGB2 цвет скобок (...)
     Color2.0 - RGB1 цвет скобок [...]
     Color2.1 - RGB2 цвет скобок [...]
     Color3.0 - RGB1 цвет метасимволов \w\f \h ...
     Color3.1 - RGB2 цвет метасимволов \w\f \h ...
     Color4 - RGB цвет границ \A, \z, \b
     Color5 - RGB цвет .*?
     Color6 - RGB цвет повторов {2,3}
     Color7 - RGB цвет кодов символов \x{..}
     Color8 - RGB цвет классов POSIX [:alnum:] ...
     Color9 - RGB цвет параметров Дополнения 24
     Color10 - RGB цвет угловых скобок и параметров с угловыми скобками <info=...>, test<...>, ...
     Color11 - RGB цвет разделителей !! //
     Color12 - RGB цвет разделителя ||
     Color13 - RGB цвет функций Autoit
     Color14 - RGB цвет макросов Autoit
     Color15 - RGB цвет дополнительных функций с квадратными скобками tnum[], enum[], ...

Пример записи:

[RegExColor]
TCIMG_Window=Segoe UI|11|400|F0F0F0|000000
TCIMG_Search=Consolas|11|400|FFFFFF|000000|FF0000
TCIMG_Replace=Segoe UI|12|400|FFFFFF|696969
TCIMG_Pattern=Verdana|11|400|FFFFFF|00008B
TCIMG_Result=Verdana|11|400|FFFFFF|008080|FF0000
TCIMG_List=Segoe UI|10|400|FFFFFF|000000|F5F5FE|000000|BFFFBD|000000|CAE1FF|000000
TCIMG_Coder=FFBDBD|E6A6AC|BDF7FF|8FDFE3|FFFFA5|E3DF8F|FFDFA5|E6DDFF|BFFFBD|FFC1F7|FAF0BE

TealWhite_Window=Segoe UI|11|400|008080|FFFFFF

BananaBlue_Window=Segoe UI|10|400|E3DF8F|0000FF

BlueLagoon_Window=Segoe UI|10|400|4CB7A5|F5F5DC

BlackWhite_Window=Segoe UI|10|400|000005|FFFFFF
BlackWhite_Search=Consolas|11|400|8F8F8F|000000|FF0000
BlackWhite_Replace=Segoe UI|12|400|8F8F8F|FFFFFF
BlackWhite_Pattern=Verdana|11|400|000000|00FF80
BlackWhite_Result=Verdana|11|400|000000|00FFFF|FF0000
BlackWhite_List=Segoe UI|10|400|8F8F8F|000000|F5F5FE|000000|BFFFBD|000000|CAE1FF|000000


№24. Режим поиска.
      • Возвращает количество найденных вхождений.
      • Справа счётчик: Позиция строки, начиная с которой будут искаться совпадения (по умолчанию равен 1)
№25. Режим замены.
      • Возвращает текст, в котором выполнена замена.
      • Справа счётчик: Количество замен в строке (по умолчанию 0 - замена всех найденных образцов)
№26. Режим групп.
      • Галочка возле "Группы" добавляет в начало строк текст "Группа N ►" для удобного просмотра результата.
      • Описание значений:

0 - Возвращает 1 <True> (совпадение найдено) или 0 <False> (не найдено).
1 - Поиск до первого совпадения; возвращает одноэлементный массив.
2 - Поиск до первого совпадения; возвращает массив,
     содержащий в первом элементе полное совпадение с шаблоном,
     последующие элементы - совпадение указанных групп (стиль Perl/PHP).
3 - Возвращает массив всех полных совпадений с шаблоном.
4 - Возвращает массив массивов всех совпадений; каждый массив содержит
     в первом элементе полное совпадение с шаблоном,
     последующие элементы - совпадение указанных групп (стиль Perl/PHP).


№27. Два поля отображающие время (в миллисекундах) выполнения регулярного выражения по нажатию кнопки №29 "Тест"
№28. Меню копирования пути и перехода к файлам библиотеки. Клавиша вызова F8.


№29. Выполняет поиск с помощью регулярного выражения. Клавиши вызова CTRL+ENTER.
№30. Копирует конструкцию в буфер обмена.
      • Конструкция прописывается TCIMG.ini в секции [RegEx] в ключе SampleCopy.
      • Пример записи: SampleCopy=$test=:FUNC:($test,':SEARCH:',':REPLACE:':PARAMETER4:).
      • Описание тегов:

SampleCopy - строка образец для копирования в буфер результата, используются теги:
  :FUNC: - заменяется функциями StringRegExp или StringRegExpReplace , в зависимости от выбора "Поиска" или "Замены"
  :SEARCH: - заменяется шаблоном поиска (регулярным выражением)
  :REPLACE: - заменяется шаблоном замены при StringRegExpReplace
  :PARAMETER4: - заменяется 4-м параметром, если он не равен 1 при "Поиске" и не равен 0 при "Замене"


№31. Меню дополнительного копирования результата. Клавиша вызова F9.
      • Меню создаётся из файла.
      • Путь файла прописывается в TCIMG.ini в секции [RegEx] в ключе FileMenu3
      • Пример записи: FileMenu3=%TCIMG_PATH%\Files\Ini\RegExMenu3.ini
 Пример синтаксиса файла

; RegExMenu3.ini
; Файл меню дополнительного копирования результата в команде regex
; Кодировка UTF-16 LE 1200
; Синтаксис:
; -----------------------------------
; [Section]
; i=Конструкция⣿Описание1⣿Описание2 (не обязательно)
; -----------------------------------
; Разделитель символ ⣿ - ChrW(10495) - &#10495; - \28FF - U+28FF
; Конструкции из секции [1] отображаются в корне меню
; Если в ключе i= ничего не прописано, то в меню вставляется разделитель
; Комментарии в секциях не поддерживаются
; Знак & (амперсанд) необходимо удваивать
; [-] - пустая секция означает разделитель
; Конструкции могут содержать теги:
; :FUNC: - заменяется функциями StringRegExp или StringRegExpReplace , в зависимости от выбора "Поиска" или "Замены"
; :SEARCH: - заменяется шаблоном поиска (регулярным выражением)
; :REPLACE: - заменяется шаблоном замены при StringRegExpReplace
; :PARAMETER4: - заменяется 4-м параметром, если он не равен 1 при "Поиске" и не равен 0 при "Замене"

[1]
i=:SEARCH:Шаблон Поиска
i=:REPLACE:Шаблон Замены
i=
i=Key=:SEARCH:||:REPLACE:Key=Поиск||Заменадля [FormatUser]
i=:SEARCH:||:REPLACE:Поиск||Заменадля [FormatUser]
i=
i=:SEARCH:!!:REPLACE:Поиск!!Заменадля formt<>
i=0!!:SEARCH:!!:REPLACE:0!!Поиск!!Заменадля formt<>
i=&&:SEARCH:!!:REPLACE:&&&&Поиск!!Заменадля Дополнения №24


№32. Области позволяют перемещать элементы окна при удержании левой кнопки.

№33. Режим тестирования параметров TCIMG.
      • Дополнительные подсказки при наведении на кнопку "?" №34.
      • При нажатии на кнопку "?" №34 переход в соответствующий раздел справки TCIMG.chm.
      • Описание значений:
        0) Тестирование шаблонов секции [FormatUser] (см. Дополнение №15).
          - Дополнительные режимы в №35:
              (0) - тестирование ключей без специальных приставок (поиск и замена). [Примеры в Library_FormatUser.rgx]
                При использовании "галочки" №33 производится только поиск вхождений.
              (1) - тестирование ключей с приставкой fun_ (замена на функцию). [Примеры в Library_FormatUser_fun.rgx]
              (2) - тестирование ключей с приставкой lot_ (многократная замена). [Примеры в Library_FormatUser_lot.rgx]
              (3) - тестирование ключей с приставкой sort_ (сортировка строк). [Примеры в Library_FormatUser_sort.rgx]
              (4) - тестирование # сортировка файлов с параметром info. [Примеры в Library_FormatUser_#.rgx]
              (5) - тестирование ключей с приставкой rgx_ (поиск + разделитель). [Примеры в Library_FormatUser_rgx.rgx]
              (6) - тестирование ключей с приставкой cmd_ (преобразование с помощью сторонних программ). [Примеры в Library_FormatUser_cmd.rgx]
              (7) - тестирование ключей с приставкой fnc_ (замена на функцию). [Примеры в Library_FormatUser_fnc.rgx]

        1) Тестирование параметра formt<...> (см. Дополнение №15).
          - В шаблоне поиска прописывается либо полностью formt<1,2,3,Key1,Key2,Key3>, либо кратко 1,2,3,Key1,Key2,Key3.
          - При использовании "галочки" №33 и нескольких заменах отображается пошаговый результат.
          - Примеры в Library_formt_N.rgx

        2) Тестирование параметров Дополнения №24.
          - В шаблоне поиска прописывается один или несколько параметров ^^Line||$Line||...||xxx!!yyy через разделитель ||
          - При использовании "галочки" №33 и нескольких параметрах отображается пошаговый результат.
          - Примеры в Library_Addition_24_N.rgx

        4) Тестирование параметра <info=...> (см. Дополнение №10).
          - В шаблоне поиска прописывается либо полностью <info=i10Line>, либо кратко i10Line.
          - Вместо "::" будет вставлена строка или объект.
          - Примеры в Library_info_N.rgx

        5) Тестирование параметра test<...> (см. Дополнение №16).
          - В шаблоне поиска прописывается либо полностью test<1n!![A-Z]>, либо кратко 1n!![A-Z].
          - При использовании "галочки" №33 отображается пошаговый результат.
          - Примеры в Library_test_N.rgx

№34. Кнопка дополнительных подсказок для режима "Тестирования параметров TCIMG"
№35. Выбор дополнительного режима при "Тестировании параметров TCIMG" и "Тестировании параметров секции [FormatUser]"
№36. Кнопка переключения переноса по словам. Клавиши вызова CTRL+U.
      • Действует одновременно для 2-х полей: "Текста замены/тестирования" и "Результата"
№37. Выбор количества строк поля в шаблоне поиска.
      • Полезно при длинных регулярных выражениях.
№38. Выбор количества строк поля в шаблоне поиска.
№39. Кнопка для получения таблицы ASCII выделенных символов или всего текста для поиска. Клавиши вызова CTRL+W.
      • В некоторых случаях в тексте для поиска попадаются "невидимые" символы: пробел, табуляция, переносы строк \r (@CR), \n (@LF) и другие...
      • Для получения подробной информации о символах можно воспользоваться этой кнопкой.
№40. Регулятор для изменения прозрачности окна.


Отдельное спасибо @AZJIO за идею и ряд настроек, взятых из программы RegExp

См. также:

captxt, cldar, color, diffd, fonts, infow, keylg, pasgen, playn, plays, radio, spech, swfvw, symcn, symss, symvw, textv, timesx, vclip, video, vidos, wntxt, xbarx

Примеры:
 Как создать кнопку?

regex=%WL||"%t" ;; конвертировать выделенные файлы шаблонов программы RegExp и сохранить в другой панели для использовании в команде regex

regex=x ;; приложение "Тестирование регулярных выражений"


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru