Регулярные выражения в 1С: онлайн-тестер с готовым кодом
Проверьте регулярное выражение на своём тексте: совпадения подсвечиваются, группы выводятся списком, замена показывается сразу. Ниже появится код для 1С — на встроенных функциях платформы 8.3.23 и новее и через VBScript.RegExp для старых версий под Windows.
Результат замены
Код 1С
Регулярные выражения во встроенном языке
Начиная с версии 8.3.23 в глобальном контексте есть функции:
СтрПодобнаПоРегулярномуВыражению(Строка, Выражение)— проверяет строку на соответствие выражению и возвращает Булево;СтрНайтиПоРегулярномуВыражению(Строка, Выражение)— возвращает объектРезультатПоискаПоРегулярномуВыражениюсо свойствамиНачальнаяПозицияиДлина;СтрЗаменитьПоРегулярномуВыражению(Строка, Выражение, Замена)— заменяет все вхождения.
Функции учитывают регистр. Обратный слеш в строке 1С не экранируется, поэтому шаблон \d{10} пишется в коде как есть. Кавычки внутри шаблона удваиваются.
На более старых платформах под Windows используют COM-объект VBScript.RegExp. Он недоступен на сервере Linux и в веб-клиенте.
Тестер работает на движке регулярных выражений браузера. Базовый синтаксис — классы \d \w \s, квантификаторы, группы, якоря ^ $ — совпадает. Ретроспективные проверки и именованные группы в 1С могут вести себя иначе.
Частые вопросы
С какой версии в 1С есть регулярные выражения?
Встроенные функции СтрНайтиПоРегулярномуВыражению, СтрЗаменитьПоРегулярномуВыражению и СтрПодобнаПоРегулярномуВыражению появились в платформе 8.3.23.
Как проверить ИНН регулярным выражением?
Шаблон ^(\d{10}|\d{12})$ проверяет только длину и цифры. Контрольные разряды ИНН проверяются отдельно, по алгоритму с весовыми коэффициентами.
Работает ли VBScript.RegExp на сервере Linux?
Нет. COM-объекты есть только в Windows. На Linux используйте функции платформы 8.3.23 и новее или разбор строки встроенными функциями.