https://github.com/k-takata/Onigmo
Onigmo — это библиотека регулярных выражений, созданная на основе Oniguruma. Он ориентирован на поддержку новых выражений, таких как K , R , (?(cond)yes|no) и т. д., которые поддерживаются в Perl 5.10+.
Поскольку Onigmo используется в качестве библиотеки регулярных выражений по умолчанию в Ruby 2.0 или новее, многие патчи перенесены из Ruby 2.x.
См. также страницу Wiki: https://github.com/k-takata/Onigmo/wiki.
Лицензия БСД.
./autogen.sh (если configure не существует.)./configuremakemake installтест
сделать тест
удалить
сделать удаление
проверка конфигурации
onigmo-config --cflags onigmo-config --libs onigmo-config --prefix onigmo-config --exec-prefix
Выполните build_nmake.cmd . build_x64 или build_x86 будут использоваться в качестве рабочего/выходного каталога.
onigmo_s.lib: static link library
onigmo.lib: import library for dynamic link
onigmo.dll: dynamic link library
тест (ASCII/Shift_JIS/EUC-JP/Юникод)
Выполните build_nmake.cmd test . Для запуска тестов нужен Python (такой же разрядности, как Onigmo).
Выполните mingw32-make -f win32/Makefile.mingw . build_x86-64 , build_i686 и т. д. будут использоваться в качестве рабочего/выходного каталога.
libonigmo.a: static link library
libonigmo.dll.a: import library for dynamic link
onigmo.dll: dynamic link library
тест (ASCII/Shift_JIS/EUC-JP/Юникод)
Выполните mingw32-make -f win32/Makefile.mingw test . Для запуска тестов нужен Python (такой же разрядности, как Onigmo).
Если вы используете MinGW в MSYS2, вы также можете использовать ./configure и make как Unix. В этом случае имя DLL будет иметь номер версии API. Например:
libonigmo-6.dll
См. doc/RE или doc/RE.ja для японского языка.
Включите onigmo.h в свою программу. (Onigmo API) См. документацию/API для получения информации об API Onigmo.
Если вы хотите отключить определение типа UChar (== unsigned char ) в onigmo.h, определите ONIG_ESCAPE_UCHAR_COLLISION , а затем включите onigmo.h.
Если вы хотите отключить определение типа regex_t в onigmo.h, определите ONIG_ESCAPE_REGEX_T_COLLISION , а затем включите onigmo.h.
Пример командной строки компиляции/связывания в Unix или Cygwin (префикс == /usr/local Case)
cc sample.c -L/usr/local/lib -lonigmo
Если вы хотите использовать статическую библиотеку ссылок (onigmo_s.lib) в Win32, добавьте опцию -DONIG_EXTERN=extern в компилятор C.
| Файл | Описание |
|---|---|
| образец/простой.c | пример минимума (Onigmo API) |
| образец/names.c | пример обратного вызова именованной группы. |
| образец/encode.c | пример некоторых кодировок. |
| образец/listcap.c | пример истории захвата. |
| образец/posix.c | Пример POSIX API. |
| образец/sql.c | пример переменных метасимволов. |
Тестовые программы
| Файл | Описание |
|---|---|
| образец/syntax.c | Проверка синтаксиса Perl, Java и ASIS. |
| образец/crnl.c | CRNL-тест |
| Файл | Описание |
|---|---|
| онигмо.ч | Файл заголовка API Onigmo (общедоступный) |
| онигмо-config.in | шаблон программы проверки конфигурации |
| онигмо.py | Модуль Онигмо для Python |
| 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 | функция информации о версии |
| ул.ч | Заголовочный файл функций хеш-таблицы |
| ст.ц | функции хэш-таблицы |
| onigmognu.h | Файл заголовка API регулярных выражений GNU (общедоступный) |
| reggnu.c | Функции API регулярных выражений GNU |
| onigmoposix.h | Файл заголовка POSIX API (общедоступный) |
| regposerr.c | Функция сообщения об ошибке POSIX |
| regposix.c | Функции POSIX API |
| enc/mktable.c | генератор таблицы типов символов |
| энк/ascii.c | Кодировка ASCII-8BIT |
| энк/джис/ | Данные свойств JIS |
| enc/euc_jp.c | Кодировка EUC-JP |
| enc/euc_tw.c | Кодировка EUC-TW |
| enc/euc_kr.c | Кодировка EUC-KR, EUC-CN |
| enc/shift_jis.c | Кодировка Shift_JIS |
| enc/shift_jis.h | Общая часть кодировки Shift_JIS и Windows-31J. |
| энк/windows_31j.c | Кодировка Windows-31J (CP932) |
| энк/big5.c | Кодировка Big5 |
| энк/gb18030.c | Кодировка GB18030 |
| enc/gbk.c | Кодировка GBK |
| enc/koi8_r.c | Кодировка КОИ8-Р |
| enc/koi8_u.c | Кодировка КОИ8-У |
| энк/iso_8859.h | общее определение кодировки ISO-8859 |
| энк/iso_8859_1.c | ISO-8859-1 (латиница-1) |
| энк/iso_8859_2.c | ISO-8859-2 (латиница-2) |
| энк/iso_8859_3.c | ISO-8859-3 (латиница-3) |
| энк/iso_8859_4.c | ISO-8859-4 (латиница-4) |
| энк/iso_8859_5.c | ISO-8859-5 (кириллица) |
| энк/iso_8859_6.c | ISO-8859-6 (арабский) |
| энк/iso_8859_7.c | ISO-8859-7 (греческий) |
| энк/iso_8859_8.c | ISO-8859-8 (иврит) |
| энк/iso_8859_9.c | ISO-8859-9 (латиница-5 или турецкий) |
| энк/iso_8859_10.c | ISO-8859-10 (Latin-6 или Nordic) |
| энк/iso_8859_11.c | ISO-8859-11 (тайский) |
| энк/iso_8859_13.c | ISO-8859-13 (Latin-7 или Балтийский регион) |
| энк/iso_8859_14.c | ISO-8859-14 (латиница-8 или кельтская) |
| энк/iso_8859_15.c | ISO-8859-15 (латиница-9 или западноевропейская с евро) |
| энк/iso_8859_16.c | ISO-8859-16 (латиница-10) |
| энк/utf_8.c | Кодировка UTF-8 |
| энк/utf_16be.c | Кодировка UTF-16BE |
| энк/utf_16le.c | Кодировка UTF-16LE |
| энк/utf_32be.c | Кодировка UTF-32BE |
| энк/utf_32le.c | Кодировка UTF-32LE |
| энк/unicode.c | общие коды кодировки Unicode |
| код/Юникод/ | Данные о сворачивании регистра Юникода и данные о свойствах |
| энк/windows_1250.c | Кодировка Windows-1250 (CP1250) (Центральная/Восточная Европа) |
| энк/windows_1251.c | Кодировка Windows-1251 (CP1251) (кириллица) |
| энк/windows_1252.c | Кодировка Windows-1252 (CP1252) (латиница) |
| энк/windows_1253.c | Кодировка Windows-1253 (CP1253) (греческий) |
| энк/windows_1254.c | Кодировка Windows-1254 (CP1254) (турецкий) |
| энк/windows_1257.c | Кодировка Windows-1257 (CP1257) (Балтийский регион) |
| энк/cp949.c | Кодировка CP949 (используется только в Ruby) |
| enc/emacs_mule.c | Внутренняя кодировка Emacs (используется только в Ruby) |
| энк/gb2312.c | Кодировка GB2312 (используется только в Ruby) |
| enc/us_ascii.c | Кодировка US-ASCII (используется только в Ruby) |
| win32/Makefile | Makefile для Win32 (VC++) |
| win32/Makefile.mingw | Makefile для Win32 (MinGW) |
| win32/config.h | config.h для Win32 |
| win32/onigmo.rc | файл ресурсов для Win32 |