-
Notifications
You must be signed in to change notification settings - Fork 10
Transformation text
Диалог вызывается нажатием Ctrl+M в инструменте запросов.
Схема работы:
В тексте находятся фрагменты PCRE regexp и формируется новый тест из Replace expression. Для подстановки найденных групп используется \g{номер_группы} можно использовать \r\n. Исходный текст разбивается на строки только если символы перевода строк не вошли в искомый текст. Если строки найдены, то перед и после каждой можно дополнительно добавить поля Append before row After row. (В After row можно использовать \r\n). Если в строке содержится несколько найденных фрагментов, то между ними добавляется Field separator.
Пример:
Желтым цветом выделяется выражение не входящее ни одну группу. Выражение \g{0} ссылается на всё найденное PCRE выражение.
Кнопка "копировать" копирует измененный текст в буфер. Значение полей можно сохранять именным набором (конфигурация). И в дальнейшем загружать. В секции dlgTransformText файла pgadmin3opt.json сохраняются настройки GUI и сохранённые конфигурации полей. Поля Rows limit Chars limit ограничивают количество строк или символов в Transform text. Установленный флаг Refresh Highlight позволяет видеть результаты во время ввода символов в поля PCRE regexp и Replace expression.
Подсветка синтаксиса PCRE выражений похожа на https://regex101.com. Использована грамматика PCRE https://github.com/bkiers/pcre-parser/blob/master/src/main/antlr4/nl/bigo/pcreparser/PCREParser.g4
Дополнение внесенное commit (https://github.com/levinsv/pgadmin3/commit/feaaf49bc607e9eaa8bbd5a6b60eeffad09ccdc0).
Пример: