Регулярные выражения
Материал из Planfix
Статья описывает регулярные выражения в правилах обработки почты — при извлечении данных из письма. В функциях REGEXPFIND и REGEXPREPLACE результат работы определяется самой функцией — смотрите статью нужной функции.
Регулярные выражения в правилах обработки почты позволяют выделять нужный фрагмент текста в процессе извлечения данных из письма.
Важно
- Использование регулярных выражений подразумевает наличие навыков программирования. Если у вас нет этих навыков, рекомендуем обратиться к специалистам, которые ими обладают.
- Регулярные выражения в ПланФиксе выполняются с опциями Pattern.DOTALL и Pattern.MULTILINE. В онлайн валидаторе — gms.
- Регулярные выражения также можно использовать в функциях REGEXPFIND и REGEXPREPLACE.
Формат регулярных выражений
В ПланФиксе используется формат регулярных выражений принятый в Java. Синтаксис регулярных выражений основан на использовании символов <([{\^-=$!|]})?*+.>, которые можно комбинировать с буквенными символами для получения метасимвола. Наиболее употребляемые метасимволы перечислены в таблице:
| Метасимвол | Назначение |
|---|---|
| ^ | начало строки |
| $ | конец строки |
| \d | цифровой символ |
| \D | нецифровой символ |
| \s | символ пробела |
| \S | непробельный символ |
| \w | буквенно-цифровой символ или знак подчёркивания |
| \W | любой символ, кроме буквенного, цифрового или знака подчёркивания |
| . | любой символ |
| \t | символ табуляции |
| \n | символ новой строки |
| \r | символ возврата каретки |
| [абв] | любой из перечисленных (а,б, или в) |
| [^абв] | любой, кроме перечисленных (не а,б, в) |
| [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 раз |
Полезная информация
- В правилах обработки почты в результат попадает только первая захватывающая (capturing) группа. Поэтому то, что должно попасть в результат, возьмите в скобки, а остальные группы сделайте незахватывающими — (?:...). Это правило работает только при извлечении данных из письма. В функции REGEXPREPLACE заменяется всё найденное совпадение целиком.
- Больше о работе регулярных выражений можно прочитать в этой статье.