Регулярные выражения: различия между версиями
Материал из Planfix
DM (обсуждение | вклад) Нет описания правки |
Artem (обсуждение | вклад) Нет описания правки |
||
(не показано 18 промежуточных версий 2 участников) | |||
Строка 5: | Строка 5: | ||
|description=Использование регулярных выражений в ПланФиксе | |description=Использование регулярных выражений в ПланФиксе | ||
}} | }} | ||
'''Регулярные выражения''' в [[Правила создания задач по e-mail | правилах обработки почты]] позволяют выделять нужный фрагмент текста в процессе [[Правило для почты: Извлечение данных | извлечения данных из письма]]. | |||
''' | == Важно == | ||
*Использование регулярных выражений подразумевает наличие '''навыков программирования'''. Если у вас нет этих навыков, рекомендуем обратиться к специалистам, которые ими обладают. | |||
*Регулярные выражения в ПланФиксе выполняются с опциями Pattern.DOTALL и Pattern.MULTILINE. В онлайн [https://regex101.com/ валидаторе] — [https://p.pfx.so/pf/nG/2iUOoF.png gms]. | |||
*Дополнительно использовать регулярные выражения можно в функции [[Функция REGEXPFIND |REGEXPFIND]]. | |||
== Формат регулярных выражений == | == Формат регулярных выражений == | ||
В ПланФиксе используется формат регулярных выражений принятый в Java. Синтаксис регулярных выражений основан на использовании символов <([{\^-=$!|]})?*+.>, которые можно комбинировать с буквенными символами для получения метасимвола. Наиболее употребляемые метасимволы перечислены в таблице: | |||
{| class="wikitable" | {| class="wikitable" style="text-align: center;" | ||
|- | |- | ||
! Метасимвол !! Назначение | ! Метасимвол !! Назначение | ||
|- | |- | ||
| <nowiki> - </nowiki> | | | <nowiki> ^ </nowiki> || начало строки | ||
|- | |||
| <nowiki> $ </nowiki> || конец строки | |||
|- | |||
| <nowiki> \d </nowiki> || цифровой символ | |||
|- | |||
| <nowiki> \D </nowiki> || нецифровой символ | |||
|- | |||
| <nowiki> \s </nowiki> || символ пробела | |||
|- | |||
| <nowiki> \S </nowiki> || непробельный символ | |||
|- | |||
| <nowiki> \w </nowiki> || буквенно-цифровой символ или знак подчёркивания | |||
|- | |||
| <nowiki> \W </nowiki> || любой символ, кроме буквенного, цифрового или знака подчёркивания | |||
|- | |||
| <nowiki> . </nowiki> || любой символ | |||
|- | |||
| <nowiki> \t </nowiki> || символ табуляции | |||
|- | |||
| <nowiki> \n </nowiki> || символ новой строки | |||
|- | |||
| <nowiki> \r </nowiki> || символ возврата каретки | |||
|- | |||
| <nowiki> [абв] </nowiki> || любой из перечисленных (а,б, или в) | |||
|- | |||
| <nowiki> [^абв] </nowiki> || любой, кроме перечисленных (не а,б, в) | |||
|- | |||
| <nowiki> [a-zA-Z] </nowiki> || слияние диапазонов (латинские символы от a до z без учета регистра) | |||
|- | |||
| <nowiki> [a-d[m-p]] </nowiki> || объединение символов (от a до d и от m до p) | |||
|- | |||
| <nowiki> [a-z&&[def]] </nowiki> || пересечение символов (символы d,e,f) | |||
|- | |||
| <nowiki> [a-z&&[^bc]] </nowiki> || вычитание символов (символы a, d-z) | |||
|- | |||
| <nowiki> ? </nowiki> || один или отсутствует | |||
|- | |||
| <nowiki> * </nowiki> || ноль или более раз | |||
|- | |||
| <nowiki> + </nowiki> || один или более раз | |||
|- | |||
| <nowiki> {n} </nowiki> || n раз | |||
|- | |||
| <nowiki> {n,} </nowiki> || n раз и более | |||
|- | |||
| <nowiki> {n,m} </nowiki> || не менее n раз и не более m раз | |||
|- | |- | ||
|} | |} | ||
== Полезная информация == | == Полезная информация == | ||
*В результат обработки текста при помощи регулярного выражения попадает первая capturing группа. Соответственно, то, что нужно, чтобы было в результате надо взять в скобки, а остальные группы сделать non-capturing '''(?:)''' | *В результат обработки текста при помощи регулярного выражения попадает первая capturing группа. Соответственно, то, что нужно, чтобы было в результате надо взять в скобки, а остальные группы сделать non-capturing '''(?:)''' | ||
*Больше о работе регулярных выражений можно прочитать в [https://javarush.ru/groups/posts/regulyarnye-vyrazheniya-v-java этой статье]. | |||
Текущая версия от 13:09, 21 октября 2022
Регулярные выражения в правилах обработки почты позволяют выделять нужный фрагмент текста в процессе извлечения данных из письма.
Важно
- Использование регулярных выражений подразумевает наличие навыков программирования. Если у вас нет этих навыков, рекомендуем обратиться к специалистам, которые ими обладают.
- Регулярные выражения в ПланФиксе выполняются с опциями Pattern.DOTALL и Pattern.MULTILINE. В онлайн валидаторе — gms.
- Дополнительно использовать регулярные выражения можно в функции REGEXPFIND.
Формат регулярных выражений
В ПланФиксе используется формат регулярных выражений принятый в 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 группа. Соответственно, то, что нужно, чтобы было в результате надо взять в скобки, а остальные группы сделать non-capturing (?:)
- Больше о работе регулярных выражений можно прочитать в этой статье.