Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
alexkmbk committed Jan 3, 2021
2 parents bddaf93 + fe84af2 commit 1afe026
Showing 1 changed file with 23 additions and 13 deletions.
36 changes: 23 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

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

Expand All @@ -45,34 +46,41 @@ 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]+)", Истина);
Пока Рег.Следующий() Цикл
Сообщить(Рег.ТекущееЗначение); // Hello world
Сообщить(Рег.ПолучитьПодгруппу(0)); // Hello
Сообщить(Рег.ПолучитьПодгруппу(1)); // world
КонецЦикла;
```

Результат будет содержать 1 элемент и 2 подгруппы, а вывод будте таким же:

```
Hello world
Hello
world
```

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

Expand Down Expand Up @@ -148,6 +156,7 @@ world

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

```bsl
УстановитьВнешнююКомпоненту("ОбщийМакет.RegEx");
ПодключитьВнешнююКомпоненту("ОбщийМакет.RegEx", "Component", ТипВнешнейКомпоненты.Native);
Expand All @@ -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_] соответственно.

0 comments on commit 1afe026

Please sign in to comment.