Регулярные выражения в плагине Renamer

Renamer использует более мощные регулярные выражения, чем Поиск и встроенный просмотрщик Sally. Он расширяет библиотеку REGEXP — замечательную работу Генри Спенсера (Henry Spencer). Сначала прочитайте Синтаксис регулярных выражений в Sally, затем описание расширений Renamer. Они основаны на возможностях Perl.

Расширенный синтаксис

  • '*?' — нежадный вариант '*' (0 или более повторений)
  • '+?' — нежадный вариант '+' (1 или более повторений)
  • '??' — нежадный вариант '?' (0 или 1 повторение)
  • '$' — в конце выражения соответствует концу строки (или позиции перед завершающим переводом строки)
  • '( )' — объединяет выражения в скобках и захватывает совпавшую подстроку (см. пример)
  • '(?: )' — работает как "( )", но не захватывает совпавшую подстроку

Примечание: "нежадный" означает минимально возможное число повторений.

Проверки нулевой ширины

Доступны следующие проверки нулевой ширины: они не поглощают символы, а проверяют истинность условия.

Проверка Значение
\b Соответствует границе слова.
\B Соответствует позиции, не являющейся границей слова.
\A Соответствует только началу строки.
\Z Соответствует только концу строки или позиции перед завершающим переводом строки.
\z Соответствует только концу строки.
(?= ) Положительная опережающая проверка (например, 'j(?=ohn)' соответствует 'j' в слове 'john', но не в 'june').
(?! ) Отрицательная опережающая проверка (например, 'j(?!ohn)' соответствует 'j' в слове 'june', но не в 'john').
(?<= ) Положительная ретроспективная проверка (например, '(?<=joh)n' соответствует 'n' в слове 'john', но не в 'joan').
(?<! ) Отрицательная ретроспективная проверка (например, '(?<!joh)n' соответствует 'n' в слове 'joan', но не в 'john').

Внутри символьных классов "\b" означает символ возврата на шаг, а не границу слова.

Символьные классы POSIX

Доступны следующие символьные классы POSIX:

Класс Эквивалент с обратной косой чертой Значение
alpha Буквенные символы.
alnum Буквы и цифры.
ascii Символы ASCII.
cntrl Управляющие символы.
digit \d Десятичные цифры.
graph Печатаемые и видимые символы (пробел печатаемый, но невидимый).
lower Строчные буквы.
print Печатаемые символы, то есть не управляющие.
punct Знаки препинания: символы, не являющиеся буквами, цифрами, управляющими символами или пробелами.
space \s Пробельные символы, например пробел, TAB и перевод страницы.
upper Прописные буквы.
word \w Буквы, цифры и знак подчёркивания ("_").
xdigit Шестнадцатеричные цифры.

Для отрицания символьного класса добавьте '^' перед его именем.

Примеры: [[:alpha:]] — буквы, [01[:alpha:]%] — буквы и символы 0, 1 и %, [[:^digit:]] — все символы, кроме десятичных цифр.

Краткие формы некоторых символьных классов

Доступны следующие краткие формы символьных классов:

Класс Значение
\w Буквы, цифры и знак подчёркивания ("_").
\W Все символы, кроме букв, цифр и подчёркивания ("_").
\s Пробельные символы, например пробел, TAB и перевод страницы.
\S Все символы, кроме пробельных: пробела, TAB, перевода страницы и т. п.
\d Десятичные цифры.
\D Все символы, кроме десятичных цифр.

Специальные символы

Доступны следующие специальные символы:

Специальный символ Значение
\t табуляция
\n перевод строки
\r возврат каретки
\f перевод страницы
\a звуковой сигнал
\b возврат на шаг
\x5A символ 'Z' с кодом 0x5A (шестнадцатеричное значение)

From the Sally manual (GPL-2.0-or-later), © 1997-2023 Open Salamander Authors; © 2025-2026 Elias Bachaalany. Source: manual source (zip) · original page in the Sally repository