Для работы с юникодом V8 использует кроссплатформенную библиотеку ICU, которая помимо прочего, содержит и функционал по работе с регулярными выражениями. По какой-то неизвестной причине, 1С не "вытащила" этот функционал "наружу", и пользоваться им из языка 1С возможности нет.
Однако, как всегда, на помощь приходят ВК.
Представляю свою разработку, которая строит "мостик" из библиотеки ICU в язык 1С. Она может работать и как Native ВК, и как аддин к Снегопату.
Разработка выполнена по технологии "real native", т.е. не просто нативная по терминологии 1С, а использует "родные" методы движка 1С и притворяется штатным объектом 1С. (В семерке так работали 1С++, Rainbow и пр.)
Работа проверялась в толстом и тонком клиенте, и на серверах 32 и 64 бит. Поддерживаются релизы 8.2, 8.3.
Для работы в релизах 8.2 младше 14ого, необходимо скопировать в папку bin файлы icuXXX46.dll из каталогов bin более старших релизов 1С.
Подробнее о регулярных выражениях в ICU можно посмотреть здесь.
Если сравнивать их с обычно используемыми VBScript.RegExp - регулярки от ICU:
- Поддерживает look behind
- Поддерживает поиск по unicode-свойствам символов
- Поддерживает комментарии в выражении
- Более полный и гибкий набор флагов поиска
- Всегда есть с 1С, даже под linux
- Быстрее работает
Для упрощения перехода, часть методов компоненты сделана совместима с VBScript.Regexp.
Таким образом, в существующем коде достаточно поменять создание объекта с Новый COMОбъект("Vbscript.RegExp") на Новый("V8RegEx").
После этого можно пользоваться и остальными методами компоненты, в том числе и split - разбиением строки на части по регулярному выражению.
В поставку входит два файла:
- rex32.dll - для работы в 32-битных клиентах и сервере
- rex64.dll - для работы в 64-битном сервере
Также имеется полная документация в html и текстовом формате.
Основные планы на ближайшее будещее - сделать linux-версию.
Обновлено:
выложена версия 1.0.0.3, в которой устранен ряд ошибок, иногда приводящих к вылету программы.