[VB6] Регулярные выражения: обёртка для PCRE2 и VBScript.Regexp

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,102
Реакции
5,882
Баллы
648
Регулярные выражения: обёртка для PCRE2 и VBScript.Regexp

Создано: Polshyn Stanislav (Dragokas) и Jason Peter Brown (jpbro) при поддержке Tanner_H, oumba, DEXWERX, dilettante (vbforums.com)

PCRE2 - это мощная библиотека регулярных выражений, которая работает очень быстро и поддерживает Perl-совместимый синтаксис регулярок, который более шире, чем включённый в VBScript.Regexp.

Вы можете использовать оригинальную обёртку над PCRE2, написанную Jason Peter Brown: GitHub - jpbro/VbPcre2: PCRE2 Wrapper for VB6

Также мною написана прокси-обёртка, основанная на коде от Jason, которая полностью имитирует объектную модель VBScript.Regexp, и при этом позволяет на лету переключаться между движками VBScript.Regexp и PCRE2.

Основная задача прокси обёртки - автопереключение на движок PCRE2, если поврежден файл библиотеки VBScript.dll или её регистрация.
Но она также имеет и другие преимущества:
  • полностью автономная (единый EXE).
  • легко интегрировать в большой проект, в котором уже повсеместно используется код с вызовами "VBScript.Regexp"
  • не требует регистрации и административных полномочий на машине пользователя

* Добавить cRegExp.cls к проекту
* Поместить файл pcre2-16.dll в ту же папку (или альтернативно, эту dll можно поместить в ресурсы с ID 501 - включено в демо-проект).
* Добавить ссылку на IRegexp.tlb - Project => References... (на машине разработчика при первом запуске нужно открыть IDE от имени администратора)
* Использовать как обычную объектную модель "VBScript.Regexp",
только вместо декларации:

VB.NET:
Dim oRegexp as Object
set oRegexp = CreateObject("VBScript.Regexp")
использовать такую:
VB.NET:
Dim oRegexp as IRegExp
set oRegexp = New cRegExp
либо такую:
VB.NET:
Dim oRegexp as Object
Dim oRegexpProxy as IRegExp
Dim oRegexpProxy = New cRegExp
set oRegexp = oRegexpProxy
Удачи :)
Демо-проект с фейсом есть в папке "Using". Доп. справка - в файлах Readme.md.
Проект в стадии Beta. Нужно жёсткое тестирование. Если найдёте баги, пожалуйста, сообщайте в Issue репозитория GitHub или мне в личку.

Исходный код прокси-обёртки (PCRE2 + VBScript.Regexp): GitHub - dragokas/VbPcre2: PCRE2 Wrapper for VB6

pcre2.png
 

Вложения

Сверху Снизу