https://github.com/kkos/oniguruma
Oniguruma — современная и гибкая библиотека регулярных выражений. Он включает в себя функции различных реализаций регулярных выражений, которые традиционно существуют в разных языках.
Кодировку символов можно указать для каждого объекта регулярного выражения.
Поддерживаемые кодировки символов:
ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE, EUC-JP, EUC-TW, EUC-KR, EUC-CN, Shift_JIS, Big5, GB18030, KOI8-R, CP1251, ИСО-8859-1, ИСО-8859-2, ИСО-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-11, ISO- 8859-13, ИСО-8859-14, ИСО-8859-15, ИСО-8859-16
При использовании сценария настройки, если у вас включен API POSIX в более ранней версии (отключен по умолчанию в 6.9.5) и вам нужна двоичная совместимость приложения с API POSIX, укажите «--enable-binary-совместимый-posix-api= да» вместо «--enable-posix-api=yes». Начиная с версии 6.9.6, «--enable-posix-api=yes» поддерживает совместимость на уровне исходного кода только с версией 6.9.5 и более ранними версиями POSIX API. (Выпуск № 210)
Лицензия БСД.
dnf install oniguruma-develyum install onigurumaapt install libonig5pacman -S onigurumazypper install onigurumaautoreconf -vfi (* случай: сценарий настройки не найден.)
./настроить
делать
сделать установку
удалить
сделать удаление
проверка конфигурации
onig-config --cflags onig-config --libs onig-config --prefix onig-config --exec-prefix
построить библиотеку
.make_win.bat
onig_s.lib: статическая библиотека onig.dll: динамическая библиотека
сделать тестовые программы
.make_win.bat все-тест
Альтернативно вы можете собрать и установить онигуруму с помощью менеджера зависимостей vcpkg:
Порт онигурумы в vcpkg постоянно обновляется членами команды Microsoft и участниками сообщества. Если версия устарела, создайте проблему или запрос на извлечение в репозитории vcpkg.
См. doc/RE или doc/RE.ja для японского языка.
Включите oniguruma.h в свою программу. (API Oniguruma) См. документацию/API для API Oniguruma.
Если вы хотите отключить определение типа UChar (== unsigned char) в oniguruma.h, определите ONIG_ESCAPE_UCHAR_COLLISION, а затем включите oniguruma.h.
Если вы хотите отключить определение типа regex_t в oniguruma.h, определите ONIG_ESCAPE_REGEX_T_COLLISION, а затем включите oniguruma.h.
Пример командной строки компиляции/связывания в Unix или Cygwin (префикс == /usr/local Case)
cc sample.c -L/usr/local/lib -lonig
Если вы хотите использовать статическую библиотеку ссылок (onig_s.lib) в Win32, добавьте опцию -DONIG_EXTERN=extern в компилятор C.
| Файл | Описание |
|---|---|
| образец/выноска.c | пример уточнений |
| образец/count.c | пример встроенной выноски *COUNT |
| образец/echo.c | пример определяемых пользователем уточнений имени |
| образец/encode.c | пример некоторых кодировок |
| образец/listcap.c | пример истории захвата |
| образец/names.c | пример обратного вызова именованной группы |
| образец/posix.c | Пример POSIX API |
| образец/regset.c | пример использования RegSet API |
| образец/scan.c | пример использования onig_scan() |
| образец/simple.c | пример минимума (API Онигурума) |
| образец/sql.c | пример переменных метасимволов |
| образец/user_property.c | пример пользовательского свойства Unicode |
Тестовые программы
| Файл | Описание |
|---|---|
| образец/syntax.c | Проверка синтаксиса Perl, Java и ASIS. |
| образец/crnl.c | --enable-crnl-as-line-terminator тест |
| Файл | Описание |
|---|---|
| онигурума.ч | Заголовочный файл API Oniguruma (общедоступный) |
| onig-config.in | шаблон программы проверки конфигурации |
| regenc.h | заголовочный файл платформы кодировок символов |
| regint.h | внутренние определения |
| regparse.h | внутренние определения для regparse.c и regcomp.c |
| regcomp.c | функции компиляции и оптимизации |
| regenc.c | система кодировок символов |
| regerror.c | функция сообщения об ошибке |
| regext.c | расширенные функции API (API делюкс-версии) |
| regexec.c | функции поиска и сопоставления |
| regparse.c | функции разбора. |
| regsyntax.c | функции синтаксиса шаблонов и встроенные определения синтаксиса |
| regtrav.c | функции обхода данных дерева истории захвата |
| regversion.c | функция информации о версии |
| ул.ч | Заголовочный файл функций хеш-таблицы |
| ст.ц | функции хеш-таблицы |
| oniggnu.h | Файл заголовка API регулярных выражений GNU (общедоступный) |
| reggnu.c | Функции API регулярных выражений GNU |
| onigposix.h | Файл заголовка POSIX API (общедоступный) |
| regposerr.c | Функция сообщения об ошибке POSIX |
| regposix.c | Функции POSIX API |
| mktable.c | генератор таблицы типов символов |
| ascii.c | Кодировка ASCII |
| euc_jp.c | Кодировка EUC-JP |
| euc_tw.c | Кодировка EUC-TW |
| euc_kr.c | Кодировка EUC-KR, EUC-CN |
| sjis.c | Кодировка Shift_JIS |
| big5.c | Кодировка Big5 |
| gb18030.c | Кодировка GB18030 |
| koi8.c | Кодировка KOI8 |
| koi8_r.c | Кодировка КОИ8-Р |
| cp1251.c | Кодировка CP1251 |
| iso8859_1.c | ISO-8859-1 (латиница-1) |
| iso8859_2.c | ISO-8859-2 (латиница-2) |
| iso8859_3.c | ISO-8859-3 (латиница-3) |
| iso8859_4.c | ISO-8859-4 (латиница-4) |
| iso8859_5.c | ISO-8859-5 (кириллица) |
| iso8859_6.c | ISO-8859-6 (арабский) |
| iso8859_7.c | ISO-8859-7 (греческий) |
| iso8859_8.c | ISO-8859-8 (иврит) |
| iso8859_9.c | ISO-8859-9 (латиница-5 или турецкий) |
| iso8859_10.c | ISO-8859-10 (Latin-6 или Nordic) |
| iso8859_11.c | ISO-8859-11 (тайский) |
| iso8859_13.c | ISO-8859-13 (Latin-7 или Балтийский регион) |
| iso8859_14.c | ISO-8859-14 (латиница-8 или кельтская) |
| iso8859_15.c | ISO-8859-15 (латиница-9 или западноевропейская с евро) |
| iso8859_16.c | ISO-8859-16 (латиница-10) |
| utf8.c | Кодировка UTF-8 |
| utf16_be.c | Кодировка UTF-16BE |
| utf16_le.c | Кодировка UTF-16LE |
| utf32_be.c | Кодировка UTF-32BE |
| utf32_le.c | Кодировка UTF-32LE |
| юникод.с | общие коды кодировки Unicode |
| unicode_fold_data.c | Данные свертывания Unicode |
| окна/testc.c | Тестовая программа для Windows (VC++) |