Содержание:
2. Что недоступно в данной версии платформы 1С 8.3.23 и как это реализовано?
1. Регулярные выражения 1С
В релизе 8.3.23 введена возможность использования регулярных выражений на встроенном языке для поиска и замены в строках.
Данная возможность предназначена для распознавания и извлечения информации из текста такой как: электронная почта, телефонные номера, номера договоров, счетов, актов и т.д. Данная версия платформы позволяет рассматривать различные методы и подходы, в первую очередь, речь идет об использовании регулярных выражений.
Регулярные выражения 1С позволяют задавать шаблон для поиска и извлечения определенных образцов из текста. Также благодаря регулярным выражениям 1С можно искать совпадения в строках, беря за основу сложный шаблон и позволяя осуществлять такие задачи как:
- Проверка соответствия текста нескольким шаблонам одновременно. Эта возможность будет нам полезна, когда потребуется проверить, соответствует ли определенное поле или строка сразу нескольким условиям. Такая возможность, несомненно, полезна при работе с большими объемами данных.
- Парсинг текста и XML-документов. Регулярные выражения 1С позволяют вычленять нужную информацию из большого текста, исключая все, что не соответствует заданному шаблону. Эта возможность нам пригодится, когда нужно будет извлечь определенные части текста, а также адреса электронной почты или номера телефонов и т.д.
- Массовая замена строк. Регулярные выражения 1С позволяют производить замену текста по заданному шаблону. Эта возможность может нам пригодиться, когда нужно будет заменить много строк одновременно.
2. Что недоступно в данной версии платформы 1С 8.3.23 и как это реализовано?
Отсутствует поддержка подвыражений (Submatches). Это означает, что невозможно получить несколько результатов поиска в виде коллекции одним вызовом функции. Вместо этого, если вам нужно получить все результаты, необходимо будет вызвать функцию поиска в цикле, каждый раз передавая ей обновленную начальную позицию поиска. Таким образом, можно последовательно получить все необходимые результаты.
Функциональность будет обеспечена с помощью трех новых функций:
Функция СтрНайтиПоРегулярномуВыражению() — найденные подстроки сохраняются в новый объект РезультатПоискаПоРегулярномуВыражению();
Данная функция находит в указанной строке вхождения подстрок, соответствующих заданному регулярному выражению 1С.
Параметры:
· <Строка>;
· <РегулярноеВыражение>;
· <НаправлениеПоиска>;
· <НачальнаяПозиция>;
· <НомерВхождения>.
Возвращаемое значение: РезультатПоискаПоРегулярномуВыражению:
НачальнаяПозиция - позиция первого знака найденной подстроки;
Длина - длина найденной подстроки.
Функция СтрЗаменитьПоРегулярномуВыражению()
Данная функция находит в указанной строке все вхождения подстрок, соответствующих заданному регулярному выражению 1С, и заменяет их на подстроку замены.
Параметры:
· <Строка>;
· <РегулярноеВыражение>;
· <ПодстрокаЗамены>.
Возвращаемое значение: Строка - результирующая строка.
Функция СтрПодобнаПоРегулярномуВыражению()
Данная функция проверяет указанную строку на соответствие заданному регулярному выражению 1С.
Параметры:
· <Строка>;
· <РегулярноеВыражение>.
Возвращаемое значение: Булево.
Специалист компании "Кодерлайн"
Александр Балянов