diff --git a/README.md b/README.md index 08918e3..bad651b 100644 --- a/README.md +++ b/README.md @@ -7,25 +7,26 @@ Внешняя Native API компонента для выполнения регулярных выражений на платформе 1С:Предприятие 8. Написана на C++. Используется движок boost::regex (v 1.69, v 1.68 - для Android). Версия синтаксиса Perl Compatible Regular Expressions. Текущая версия собрана для следующих платформ: -Windows 32bit -Windows 64bit -Linux 32bit -Linux 64bit -MacOS 64bit -Android ARMv7-A -Android x86 -Google Chrome (Linux, Windows) +- 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 +- Под Windows: Microsoft Visual Studio Community 2017 -Под Linux: GCC 6 +- Под Linux: GCC 6 -Под Mac OS: Clang 9 +- Под Mac OS: Clang 9 -Под Android: Android Studio NDK 19.2 +- Под Android: Android Studio NDK 19.2 Использовалась статическая сборка, поэтому компонента не требует установки каких-либо дополнительных библиотек. @@ -45,21 +46,25 @@ Google Chrome (Linux, Windows) Пример: +```bsl Рег.НайтиСовпадения("Hello world", "([A-Za-z]+)\s+([a-z]+)"); Пока Рег.Следующий() Цикл Сообщить(Рег.ТекущееЗначение); КонецЦикла; +``` Результат будет содержать 3 элемента: +``` Hello world Hello world - +``` Пример с иерархическим обходом: +```bsl Рег.НайтиСовпадения("Hello world", "([A-Za-z]+)\s+([a-z]+)", Истина); Пока Рег.Следующий() Цикл @@ -67,12 +72,15 @@ world Сообщить(Рег.ПолучитьПодгруппу(0)); // Hello Сообщить(Рег.ПолучитьПодгруппу(1)); // world КонецЦикла; +``` Результат будет содержать 1 элемент и 2 подгруппы, а вывод будте таким же: +``` Hello world Hello world +``` ### Метод Количество() \ Count() @@ -148,6 +156,7 @@ world Предполагается что архив с компонентами был загружен в общий макет "RegEx" +```bsl УстановитьВнешнююКомпоненту("ОбщийМакет.RegEx"); ПодключитьВнешнююКомпоненту("ОбщийМакет.RegEx", "Component", ТипВнешнейКомпоненты.Native); @@ -166,6 +175,7 @@ world Сообщить(Рег.Количество()); Сообщить(Рег.Совпадает("Hello world", "([A-Za-z]+)\s+([a-z]+)")); Сообщить(Рег.Заменить("Hello world", "([A-Za-z]+)\s+([a-z]+)", "Текст для замены")); +``` Примечание. При использовании в шаблоне символов [\W] и [\w], особенностью реализации является то, что в качестве символов распознаются не только символы латиницы, а вообще любые символы, поэтому, если требуется отделить именно символы латиницы, рекомендуется использовать шаблоны [^a-zA-Z0-9_] и [a-zA-Z0-9_] соответственно.