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-devel
yum install oniguruma
apt install libonig5
pacman -S oniguruma
zypper install oniguruma
autoreconf -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++) |