Регулярные выражения в плагине 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 | Строчные буквы. | |
| Печатаемые символы, то есть не управляющие. | ||
| 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