Содержание:
- Что такое регулярные выражения
- Встроенный конструктор RegExp в 1С
- Основные понятия синтаксиса RegExp в 1С
- Отладка регулярных выражений в системе 1C: Предприятие
Регулярные выражения (RegExp) — мощный инструмент для поиска и обработки текста. В 1С их можно использовать для валидации данных, парсинга строк и сложного поиска. В этой статье разберем, как работать с регулярными выражениями в 1С, включая встроенный конструктор и практические примеры.
Что такое регулярные выражения
Регулярные выражения — это шаблоны для поиска и замены текста. Они поддерживаются в 1С через объект РегулярноеВыражение.
Основные возможности:
- Поиск по сложным шаблонам;
- Валидация данных (например, email, телефон);
- Разбиение строк на части;
- Замена текста.
Встроенный конструктор RegExp в 1С
В 1С: Предприятие 8.3.14+ появился визуальный конструктор регулярных выражений.
Как открыть:
- В модуле 1С вставьте код с РегулярноеВыражение;
- Нажмите Ctrl+Space → выберите РегулярноеВыражение;
- Кликните на иконку «…» рядом с шаблоном — откроется конструктор.
Возможности конструктора:
- Визуальное построение шаблона;
- Тестирование на лету;
- Подсказки по синтаксису;
- Готовые примеры (email, телефон, дата).
Основные понятия синтаксиса RegExp в 1С
Создание и использование.
РегВыражение = Новый РегулярноеВыражение(“\\d+”); // Поиск чисел
НайденыСовпадения = РегВыражение.Найти(“Текст 123”); // Вернет “123”
Популярные шаблоны.
Шаблон | Описание | Пример в 1С |
\d | Любая цифра | “\\d” (двойной \ в 1С!) |
[A-Za-z] | Латинские буквы | “[A-Za-z]+” |
^[0-9]{4}$ | Ровно 4 цифры | Проверка кода (например, инн) |
\s | Пробельный символ | Удаление лишних пробелов |
Практические примеры:
- Валидация email:
Функция ПроверитьEmail(Знач Email)
РегВыражение = Новый РегулярноеВыражение(
“^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$”
);
Возврат РегВыражение.ПроверитьСтроку(Email);
КонецФункции
- Извлечение всех чисел из текста:
Функция ИзвлечьЧисла(Текст)
РегВыражение = Новый РегулярноеВыражение(“\\d+”);
Найденные = РегВыражение.НайтиВсе(Текст);
МассивЧисел = Новый Массив;
Для Каждого Совпадение Из Найденные Цикл
МассивЧисел.Добавить(Число(Совпадение.Значение));
КонецЦикла;
Возврат МассивЧисел;
КонецФункции
- Удаление HTML-тегов:
Функция УдалитьHTML(Знач Текст)
РегВыражение = Новый РегулярноеВыражение(“<[^>]*>”);
Возврат РегВыражение.Заменить(Текст, “”);
КонецФункции
Отладка регулярных выражений в системе 1C: Предприятие
Если RegExp не работает:
- Проверьте экранирование (\\ вместо \);
- Упростите шаблон — разбейте на части;
- Используйте онлайн-тестеры (например, regex101.com);
- Включите логирование в 1С:
Попытка
РегВыражение = Новый РегулярноеВыражение(“неправильный[шаблон”);
Исключение
Сообщить(“Ошибка: ” + ОписаниеОшибки()); // Выведет детали
КонецПопытки;
Специалист компании ООО “Кодерлайн”,
Дубровина Елена
Добавить комментарий