Содержание:
1. Значение Регулярных выражений
2. Функционал и примеры регулярных выражений
1. Значение Регулярных выражений
Приветствую, коллеги! В данной статье будет рассмотрены регулярные выражения в 1С, также известные как выражения RegExp.
Регулярных выражения – это один из инструментов, который предназначен для анализа текстов и имеет довольно широкий функционал. В самой системе 1С не предусмотрен инструментарий для работы с выражениями RegExp. Но, при этом, даже на платформе 1С, можно пользоваться объектом из Windows, который осуществляет работу с регулярными выражениями – VBScript.RegExp.
Все программные коды, которые будут описаны ниже, действительны для всех конфигураций и версий системы 1С 8.х.
2. Функционал и примеры регулярных выражений
Для начала следует обозначить, как использовать регулярные выражения, как создаётся объект при их помощи, строка кода для данного действия, будет выглядеть так, как показано на скриншоте ниже:
Рис. 1 Пример использования регулярных выражения для создания объекта
Также стоит отметить, что за глобальные переменные представляются переменные вида:
Рис. 2 Глобальные переменные в примере с регулярными выражениями
Разберём перечень свойств, которые присущи объекту VBScript.RegExp:
1. Global. Значение «Ложь» по умолчанию и поиск значения «Истина» Истина по всему объёму текста;
2. IgnorCase. По умолчанию ему присваивается значение «Ложь», и оно учитывается для всего символьного регистра, а в значении «Истина» символьный регистр не будет учтён;
3. Multiline. Также по умолчанию присваивается значение «Ложь» – является объектом на одну строку; в значении «Истина» обозначает объект на большее количество строк.
4. Pattern. Это свойство, которое представляет собой некоторую шаблонную строку при использовании регулярных выражений.
Далее представим перечень методов, которые могут быть использованы в примере с регулярными выражениями:
1. Test(СтрокаТекста) – данный метод осуществляет сверку строки, которую в него подставили, на то, насколько она соответствует шаблонной строке. Это может быть, к примеру, поверка на корректность адреса. Возвращается «Ложь», если строка имеет полное соответствие с шаблоном, а значение «Истина» – в случае, если не подтверждено соответствие шаблону;
2. Replace(СтрокаТекста, СтрокаЗамены) – в данном методе для первого параметра происходит поиск строки, которая соответствует шаблону, а при помощи второго параметра происходит замена первого значения;
3. Execute(СтрокаТекста) – этот метод производит поиск строки, которая соответствует указанному шаблону, и возвращает значения в виде коллекции подстрок, которые были найдены.
Также у данного объекта есть софт, при помощи которого происходит отладка шаблонов для регулярных выражений – это RegexBuddy.
Далее представлен пример того, как при помощи данного объекта программно описать поиск HTML тегов внутри строки:
Следующий пример с регулярными выражениями ищет HTML теги в строке:
Рис. 3 Регулярные выражения в 1С для поиска тегов в строке
Поменяем в коде программы шаблон регулярных выражений так, чтобы были крупные скобки, при помощи которых происходят группировки в коллекциях SubMatces. В таком случае код будет представлен в следующем виде:
Рис. 4 Применение шаблона регулярных выражений в коде
После этого будет осуществлён поиск самого тега, а также текстовой информации, которая идёт после данного тега. Чтобы сделать обработку подобного шаблона регулярных выражений, необходимо написать код следующего вида:
Рис. 5 Обработка шаблона регулярных выражений
Стоит рассмотреть также и пример того, как можно использовать регулярные выражения для проверки email, то есть проверки корректности введения электронного адреса:
Рис. 6 Регулярные выражения для проверки email
Если внутри текста регулярные выражения встречаются часто, то лучшим вариантом решения данной проблемы будет написание специальной оболочки. Главными позициями в таком случае будут:
· Глобальная переменная, которая будет вложенным объектом внутри объекта VBScript.RegExp;
· Проведение инициализации вышеуказанной глобальной переменной, которая будет производится при каждом запуске данной конфигурации или в конкретных случаях, если прописана специальная функция;
· Инкапсуляция по методам внутри объекта VBScript.RegExp.
Специалист компании «Кодерлайн»
Айдар Фархутдинов