Работа с регулярными выражениями средствами платформы 1С:Предриятие
Доступный функционал:
- построение процессора регулярного выражения по шаблону
- проверка полного соответствия текста регулярному выражению
- поиск вхождений в тексте по регулярному выражению
Реализованы следующие элементы построения регулярных выражений:
- операции:
|
,()
- квантификаторы:
*
,+
,?
,{n}
,{, n}
,{n, }
,{n, m}
- символы:
.
,\
,\t
,\n
,\r
,\f
,\a
,\e
,\xhh
,\uhhhh
- классы символов:
[abc]
,[^x-z]
- предопределённые классы символов:
\d
,\D
,\h
,\H
,\s
,\S
,\v
,\V
,\w
,\W
Подсистема обходится исключительно средствами платформы 1С. Отрабатывает на клиенте и сервере.
В основе движка подсистемы недетерминированный конечный автомат. PDF презентации по материалам книги Роберта Сэджвика и Кевина Уэйна.
Разрабатывается на платформах 8.3.21.1302 и 8.3.10.2667
Требуемая минимальная версия: 8.3.6
Требуемая минимальная версия расширения: 8.3.9
Ограничения платформы можно существенно снизить вплоть до 8.1, избавившись от типов Фиксированных коллекций и функции СтрСоединить
.
Проверка соответствия всей строки шаблону (процессор можно переиспользовать):
Шаблон = "(A*B|\d)D";
Процессор = Регулярка.ПроцессорРаспознавания(Шаблон);
Сообщить(Регулярка.Распознано(Процессор, "D")); // Ложь
Сообщить(Регулярка.Распознано(Процессор, "3D")); // Истина
Сообщить(Регулярка.Распознано(Процессор, "BD")); // Истина
Сообщить(Регулярка.Распознано(Процессор, "AD")); // Ложь
Сообщить(Регулярка.Распознано(Процессор, "AAAAAABD")); // Истина
Поиск вхождений в тексте:
Процессор = Регулярка.ПроцессорРаспознавания("\n");
Текст =
"Белеет парус одинокой
|В тумане моря голубом. —
|Что ищет он в стране далекой?
|Что кинул он в краю родном?";
Вхождения = Регулярка.Вхождения(Процессор, Текст);