https://github.com/k-takata/Onigmo
Onigmo es una biblioteca de expresiones regulares derivada de Oniguruma. Se centra en admitir nuevas expresiones como K , R , (?(cond)yes|no) y etc. que son compatibles con Perl 5.10+.
Dado que Onigmo se utiliza como biblioteca de expresiones regulares predeterminada de Ruby 2.0 o posterior, muchos parches están respaldados desde Ruby 2.x.
Consulte también la página Wiki: https://github.com/k-takata/Onigmo/wiki
Licencia BSD.
./autogen.sh (si configure no existe)../configuremakemake installprueba
hacer prueba
desinstalar
hacer desinstalación
verificación de configuración
onigmo-config --cflags onigmo-config --libs onigmo-config --prefix onigmo-config --exec-prefix
Ejecute build_nmake.cmd . build_x64 o build_x86 se utilizarán como directorio de trabajo/salida.
onigmo_s.lib: static link library
onigmo.lib: import library for dynamic link
onigmo.dll: dynamic link library
prueba (ASCII/Shift_JIS/EUC-JP/Unicode)
Ejecute build_nmake.cmd test . Se necesita Python (con el mismo bitness de Onigmo) para ejecutar las pruebas.
Ejecute mingw32-make -f win32/Makefile.mingw . build_x86-64 , build_i686 , etc. se utilizarán como directorio de trabajo/salida.
libonigmo.a: static link library
libonigmo.dll.a: import library for dynamic link
onigmo.dll: dynamic link library
prueba (ASCII/Shift_JIS/EUC-JP/Unicode)
Ejecute mingw32-make -f win32/Makefile.mingw test . Se necesita Python (con el mismo bitness de Onigmo) para ejecutar las pruebas.
Si usa MinGW en MSYS2, también puede usar ./configure y make como Unix. En este caso, el nombre de la DLL tendrá el número de versión de API. P.ej:
libonigmo-6.dll
Consulte doc/RE o doc/RE.ja para japonés.
Incluya onigmo.h en su programa. (API de Onigmo) Consulte doc/API para la API de Onigmo.
Si desea deshabilitar la definición del tipo UChar (== unsigned char ) en onigmo.h, defina ONIG_ESCAPE_UCHAR_COLLISION y luego incluya onigmo.h.
Si desea deshabilitar la definición del tipo regex_t en onigmo.h, defina ONIG_ESCAPE_REGEX_T_COLLISION y luego incluya onigmo.h.
Ejemplo de línea de comando de compilación/vinculación en Unix o Cygwin, (prefijo == /usr/local caso)
cc sample.c -L/usr/local/lib -lonigmo
Si desea utilizar la biblioteca de enlaces estáticos (onigmo_s.lib) en Win32, agregue la opción -DONIG_EXTERN=extern al compilador de C.
| Archivo | Descripción |
|---|---|
| muestra/simple.c | ejemplo del mínimo (API Onigmo) |
| muestra/nombres.c | Ejemplo de devolución de llamada de grupo con nombre. |
| muestra/codificar.c | ejemplo de algunas codificaciones. |
| muestra/listcap.c | ejemplo del historial de captura. |
| muestra/posix.c | Muestra de API POSIX. |
| muestra/sql.c | ejemplo de los metacaracteres variables. |
Programas de prueba
| Archivo | Descripción |
|---|---|
| muestra/sintaxis.c | Prueba de sintaxis en Perl, Java y ASIS. |
| muestra/crnl.c | prueba CRNL |
| Archivo | Descripción |
|---|---|
| onigmo.h | Archivo de encabezado API de Onigmo (público) |
| onigmo-config.in | plantilla de programa de verificación de configuración |
| onigmo.py | Módulo Onigmo para Python |
| regenc.h | archivo de encabezado del marco de codificación de caracteres |
| regint.h | definiciones internas |
| regparse.h | definiciones internas para regparse.c y regcomp.c |
| regcomp.c | funciones de compilación y optimización |
| regenc.c | marco de codificación de caracteres |
| regerror.c | función de mensaje de error |
| regext.c | Funciones API extendidas (API versión de lujo) |
| regexec.c | funciones de búsqueda y coincidencia |
| regparse.c | funciones de análisis. |
| sintaxis reg.c | funciones de sintaxis de patrones y definición de sintaxis incorporada |
| regtrav.c | capturar datos del árbol histórico funciones de recorrido |
| regversión.c | función de información de versión |
| st.h | archivo de encabezado de funciones de tabla hash |
| st.c | funciones de tabla hash |
| onigmognu.h | Archivo de encabezado API de expresiones regulares de GNU (público) |
| reggnu.c | Funciones API de expresiones regulares de GNU |
| onigmoposix.h | Archivo de encabezado API POSIX (público) |
| regposerr.c | Función de mensaje de error POSIX |
| regposix.c | Funciones API POSIX |
| enc/mktable.c | generador de tablas de tipos de caracteres |
| enc/ascii.c | Codificación ASCII-8BIT |
| enc/jis/ | Datos de propiedades JIS |
| enc/euc_jp.c | Codificación EUC-JP |
| enc/euc_tw.c | Codificación EUC-TW |
| enc/euc_kr.c | Codificación EUC-KR, EUC-CN |
| enc/shift_jis.c | Codificación Shift_JIS |
| enc/shift_jis.h | Parte común de la codificación Shift_JIS y Windows-31J |
| enc/windows_31j.c | Codificación Windows-31J (CP932) |
| enc/big5.c | Codificación Big5 |
| enc/gb18030.c | Codificación GB18030 |
| enc/gbk.c | codificación GBK |
| enc/koi8_r.c | Codificación KOI8-R |
| enc/koi8_u.c | Codificación KOI8-U |
| enc/iso_8859.h | definición común de codificación ISO-8859 |
| enc/iso_8859_1.c | ISO-8859-1 (Latín-1) |
| enc/iso_8859_2.c | ISO-8859-2 (Latín-2) |
| enc/iso_8859_3.c | ISO-8859-3 (Latín-3) |
| enc/iso_8859_4.c | ISO-8859-4 (Latín-4) |
| enc/iso_8859_5.c | ISO-8859-5 (cirílico) |
| enc/iso_8859_6.c | ISO-8859-6 (árabe) |
| enc/iso_8859_7.c | ISO-8859-7 (griego) |
| enc/iso_8859_8.c | ISO-8859-8 (hebreo) |
| enc/iso_8859_9.c | ISO-8859-9 (latín-5 o turco) |
| enc/iso_8859_10.c | ISO-8859-10 (Latin-6 o Nórdico) |
| enc/iso_8859_11.c | ISO-8859-11 (tailandés) |
| enc/iso_8859_13.c | ISO-8859-13 (Latin-7 o Borde Báltico) |
| enc/iso_8859_14.c | ISO-8859-14 (Latin-8 o Celta) |
| enc/iso_8859_15.c | ISO-8859-15 (Latin-9 o Europa occidental con euro) |
| enc/iso_8859_16.c | ISO-8859-16 (Latín-10) |
| enc/utf_8.c | Codificación UTF-8 |
| enc/utf_16be.c | Codificación UTF-16BE |
| enc/utf_16le.c | Codificación UTF-16LE |
| enc/utf_32be.c | Codificación UTF-32BE |
| enc/utf_32le.c | Codificación UTF-32LE |
| enc/unicode.c | códigos comunes de codificación Unicode |
| enc/unicode/ | Datos de propiedades y datos de plegado de cajas Unicode |
| enc/windows_1250.c | Codificación Windows-1250 (CP1250) (Europa Central y del Este) |
| enc/windows_1251.c | Codificación Windows-1251 (CP1251) (cirílico) |
| enc/windows_1252.c | Codificación Windows-1252 (CP1252) (latín) |
| enc/windows_1253.c | Codificación Windows-1253 (CP1253) (griego) |
| enc/windows_1254.c | Codificación Windows-1254 (CP1254) (turco) |
| enc/windows_1257.c | Codificación Windows-1257 (CP1257) (Borde Báltico) |
| enc/cp949.c | Codificación CP949 (solo utilizada en Ruby) |
| enc/emacs_mule.c | Codificación interna de Emacs (solo utilizada en Ruby) |
| enc/gb2312.c | Codificación GB2312 (solo utilizada en Ruby) |
| enc/us_ascii.c | Codificación US-ASCII (solo utilizada en Ruby) |
| win32/archivo Make | Archivo Make para Win32 (VC++) |
| win32/Makefile.mingw | Makefile para Win32 (MinGW) |
| win32/config.h | config.h para Win32 |
| win32/onigmo.rc | archivo de recursos para Win32 |