Регулярные выражения
В этой статье описаны регулярные выражения в правилах обработки писем при извлечении из них данных. В функциях REGEXPFIND и REGEXPREPLACE результат зависит от самой функции — см. статью о соответствующей функции.
Регулярные выражения в правилах обработки писем позволяют выделить нужный фрагмент текста при извлечении данных из письма.
Важно
- Для работы с регулярными выражениями требуются навыки программирования. Если у вас нет таких навыков, рекомендуем обратиться за помощью к специалисту.
- В Planfix регулярные выражения работают с параметрами Pattern.DOTALL и Pattern.MULTILINE. В онлайн-валидаторе выберите gms.
- Регулярные выражения также можно использовать с функциями REGEXPFIND и REGEXPREPLACE.
Формат регулярных выражений
В Planfix используется формат регулярных выражений, принятый в Java. В синтаксисе регулярных выражений используются символы <([{\^-=$!|]})?*+.>, которые можно сочетать с буквами, создавая метасимволы. Наиболее часто используемые метасимволы перечислены в таблице:
| Метасимвол | Значение |
|---|---|
| ^ | начало строки |
| $ | конец строки |
| \d | цифра |
| \D | любой символ, кроме цифры |
| \s | пробельный символ |
| \S | символ, отличный от пробельного |
| \w | буквенно-цифровой символ или знак подчеркивания |
| \W | любой символ, кроме буквенно-цифровых символов и знаков подчеркивания |
| . | любой символ |
| \t | символ табуляции |
| \n | символ перевода строки |
| \r | символ возврата каретки |
| [abc] | любой из указанных символов (a, b или c) |
| [^abc] | любой символ, кроме указанных (не a, b и не c) |
| [a-zA-Z] | объединение диапазонов (латинские буквы от a до z, без учета регистра) |
| [a-d[m-p]] | объединение символов (от a до d и от m до p) |
| [a-z&&[def]] | пересечение наборов символов (d, e, f) |
| [a-z&&[^bc]] | вычитание символов (a, d-z) |
| ? | ноль или один раз |
| * | ноль или более раз |
| + | один или более раз |
| {n} | n раз |
| {n,} | n или более раз |
| {n,m} | не менее n и не более m раз |
Полезная информация
- В правилах обработки писем возвращается только первая захватывающая группа. Заключите в скобки текст, который нужно вернуть, а остальные группы сделайте незахватывающими — (?:...). Это относится только к извлечению данных из письма. Функция REGEXPREPLACE заменяет все совпадение.
- Подробнее о регулярных выражениях можно прочитать в этой статье.