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

Материал из 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 заменяется всё найденное совпадение целиком.
  • Больше о работе регулярных выражений можно прочитать в этой статье.

Перейти