- Сообщения
- 8,012
- Решения
- 12
- Реакции
- 6,785
Регулярные выражения: обёртка для 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 или её регистрация.
Но она также имеет и другие преимущества:
Демо-проект с фейсом есть в папке "Using". Доп. справка - в файлах Readme.md.
Проект в стадии Beta. Нужно жёсткое тестирование. Если найдёте баги, пожалуйста, сообщайте в Issue репозитория GitHub или мне в личку.
Исходный код прокси-обёртки (PCRE2 + VBScript.Regexp): GitHub - dragokas/VbPcre2: PCRE2 Wrapper for VB6
Создано: 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",
только вместо декларации:
использовать такую:
либо такую:
Удачи
* Поместить файл pcre2-16.dll в ту же папку (или альтернативно, эту dll можно поместить в ресурсы с ID 501 - включено в демо-проект).
* Добавить ссылку на IRegexp.tlb - Project => References... (на машине разработчика при первом запуске нужно открыть IDE от имени администратора)
* Использовать как обычную объектную модель "VBScript.Regexp",
только вместо декларации:
VB.NET / VBA:
Dim oRegexp as Object
set oRegexp = CreateObject("VBScript.Regexp")
VB.NET / VBA:
Dim oRegexp as IRegExp
set oRegexp = New cRegExp
VB.NET / VBA:
Dim oRegexp as Object
Dim oRegexpProxy as IRegExp
Dim oRegexpProxy = New cRegExp
set oRegexp = oRegexpProxy
Удачи
Проект в стадии Beta. Нужно жёсткое тестирование. Если найдёте баги, пожалуйста, сообщайте в Issue репозитория GitHub или мне в личку.
Исходный код прокси-обёртки (PCRE2 + VBScript.Regexp): GitHub - dragokas/VbPcre2: PCRE2 Wrapper for VB6