1. Администрация SafeZone приветствует вас на нашем форуме!
    Если вы больше не желаете видеть рекламу при просмотре тем и сообщений - то достаточно просто зарегистрироваться. Для зарегистрированных пользователей реклама не отображается.
    Если у вас возникли проблемы с регистрацией на форуме - то вы можете сообщить об этом с помощью этой формы без авторизации,администрация форума обязательно отреагирует на вашу проблему.
    Скрыть объявление

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

Тема в разделе "Банк полезных кодов", создана пользователем Dragokas, 24 июн 2017.

  1. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    5.014
    Симпатии:
    4.895
    Регулярные выражения: обёртка для 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.
     

    Вложения:

    лис.хвост и akok нравится это.

Поделиться этой страницей