Giter Club home page Giter Club logo

klimenko-1c-forks / regex1caddin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alexkmbk/regex1caddin

0.0 1.0 0.0 80.64 MB

Native API component for executing regular expressions on 1C: Enterprise platform / Внешняя Native API компонента для выполнения регулярных выражений на платформе 1С:Предприятие 8

License: MIT License

C++ 99.78% CMake 0.01% Batchfile 0.01% 1C Enterprise 0.01% Makefile 0.01% C 0.19% Perl 0.01% HTML 0.01% M4 0.01% Shell 0.01%

regex1caddin's Introduction

Join the chat at https://gitter.im/RegEx1CAddin/Lobby

RegEx1CAddin

Внешняя Native API компонента для выполнения регулярных выражений на платформе 1С:Предприятие 8. Написана на C++. Используется движок boost::regex (v 1.69, v 1.68 - для Android). Версия синтаксиса Perl Compatible Regular Expressions.

Внимание! Текущая версия является тестовой и еще не была протестирована на реальных проектах и базах. В текущей версии нет совместимости с Windows XP (совместимость была до версии 4).

Текущая версия собрана для следующих платформ: Windows 32bit
Windows 64bit
Linux 32bit
Linux 64bit
MacOS 64bit
Android ARMv7-A
Android x86
Google Chrome (Linux, Windows)
Тестировалось на платформе 8.3.12.1567 (Windows 7, Windows Server 2008 R2, Ubuntu 14 32-64bit, MacOS Sierra 10.12, Android 8)

Сборка осуществлялась с использованием следующих инструментов:

Под Windows: Microsoft Visual Studio Community 2017

Под Linux: GCC 6

Под Mac OS: Clang 9

Под Android: Android Studio NDK 19.2

Использовалась статическая сборка, поэтому компонента не требует установки каких-либо дополнительных библиотек.

Компонента реализует следующие методы:

Метод НайтиСовпадения / Matches(<Текст для анализа>, <Регулярное выражение>).

Метод выполняет поиск в переданном тексте по переданному регулярному выражению.

Результатом выполнения метода будет массив результатов поиска. Каждый элемент массива - найденная подгруппа поиска. Если подгрупп нет, то массив будет содержать один элемент - найденную строку.

Возвращаемое значение: Ничего не возвращает.

Для того, чтобы получить результаты выполнения метода (массив результатов), необходимо выполнить метод Следующий/Next(), и после этого, в свойстве ТекущееЗначение/CurrentValue будет доступно значение текущей подгруппы результата выполнения (текущий элемент массива результатов). Идея похожа на обход результата запроса.

Пример:

Рег.НайтиСовпадения("Hello world", "([A-Za-z]+)\s+([a-z]+)");

Пока Рег.Следующий() Цикл Сообщить(Рег.ТекущееЗначение);
КонецЦикла; Результат будет содержать 3 элемента:

Hello world

Hello

world

Метод Количество()/Count()

Возвращает количество результатов поиска, после выполнения метода НайтиСовпадения / Matches

Метод Заменить/Replace(<Текст для анализа>, <Регулярное выражение>, <Значение для замены>)

Заменяет в переданном тексте часть, соответствующую регулярному выражению, значением, переданным третьим параметром.

Возвращаемое значение: Строка, результат замены.

Метод Совпадает/IsMatch(<Текст для анализа>, <Регулярное выражение>)

Делает проверку на соответствие текста регулярному выражению.

Возвращаемое значение: Булево. Возвращает значение Истина если текст соответствует регулярному выражению.

Метод Версия/Version()

Возвращает номер версии компоненты в виде строки.

Возвращаемое значение: Строка

Свойство ВсеСовпадения/Global

Тип: Булево.

Значение по умолчанию: Ложь.

Если установлено в Истина, то поиск будет выполняться по всем совпадениям, а не только по первому.

Свойство ИгнорироватьРегистр/IgnoreCase

Тип: Булево.

Значение по умолчанию: Ложь.

Если установлено в Истина, то поиск будет осуществляться без учета регистра.

Свойство Шаблон/Template

Тип: Строка.

Значение по умолчанию: пустая строка.

Задает регулярное выражение которое будет использоваться при вызове методов компоненты, если в метод не передано значение регулярного выражения.

Свойство ОписаниеОшибки/ErrorDescription

Тип: Строка.

Значение по умолчанию: пустая строка.

Содержит текст последней ошибки. Если ошибки не было, то пустая строка.

Свойство ВызыватьИсключения/ThrowExceptions

Тип: Булево.

Значение по умолчанию: Ложь.

Если установлена в Истина, то при возникновении ошибки, будет вызываться исключение, при обработке исключения, текст ошибки можно получить из свойства ErrorDescription\ОписаниеОшибки.

Пример использования:

Предполагается что архив с компонентами был загружен в общий макет "RegEx"

УстановитьВнешнююКомпоненту("ОбщийМакет.RegEx"); ПодключитьВнешнююКомпоненту("ОбщийМакет.RegEx", "Component", ТипВнешнейКомпоненты.Native);

Рег = Новый("AddIn.Component.RegEx"); Рег.НайтиСовпадения("Hello world", "([A-Za-z]+)\s+([a-z]+)");

Пока Рег.Следующий() Цикл Сообщить(Рег.ТекущееЗначение);
КонецЦикла;

Сообщить(Рег.Количество());

Сообщить(Рег.Совпадает("Hello world", "([A-Za-z]+)\s+([a-z]+)"));

Сообщить(Рег.Заменить("Hello world", "([A-Za-z]+)\s+([a-z]+)", "Текст для замены"));

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.