https://github.com/kkos/oniguruma
Oniguruma es una biblioteca de expresiones regulares moderna y flexible. Abarca características de diferentes implementaciones de expresiones regulares que tradicionalmente existen en diferentes idiomas.
La codificación de caracteres se puede especificar por objeto de expresión regular.
Codificaciones de caracteres admitidas:
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, ISO-8859-1, ISO-8859-2, ISO-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, ISO-8859-14, ISO-8859-15, ISO-8859-16
Cuando utilice el script de configuración, si tiene la API POSIX habilitada en una versión anterior (deshabilitada de forma predeterminada en 6.9.5) y necesita compatibilidad binaria de la aplicación con la API POSIX, especifique "--enable-binary-compatible-posix-api= sí" en lugar de "--enable-posix-api=yes". A partir de 6.9.6, "--enable-posix-api=yes" solo admite compatibilidad a nivel de fuente para 6.9.5 y versiones anteriores sobre la API POSIX. (Número 210)
Licencia BSD.
dnf install oniguruma-develyum install onigurumaapt install libonig5pacman -S onigurumazypper install onigurumaautoreconf -vfi (* caso: no se encuentra el script de configuración).
./configurar
hacer
hacer la instalación
desinstalar
hacer desinstalación
verificación de configuración
onig-config --cflags onig-config --libs onig-config --prefix onig-config --exec-prefix
construir biblioteca
.make_win.bat
onig_s.lib: biblioteca de enlaces estáticos onig.dll: biblioteca de enlaces dinámicos
hacer programas de prueba
.make_win.bat todas las pruebas
Alternativamente, puedes compilar e instalar oniguruma usando el administrador de dependencias vcpkg:
Los miembros del equipo de Microsoft y los contribuyentes de la comunidad mantienen actualizado el port oniguruma en vcpkg. Si la versión no está actualizada, cree un problema o una solicitud de extracción en el repositorio de vcpkg.
Consulte doc/RE o doc/RE.ja para japonés.
Incluye oniguruma.h en tu programa. (API de Oniguruma) Consulte doc/API para la API de Oniguruma.
Si desea deshabilitar la definición del tipo UChar (== carácter sin firmar) en oniguruma.h, defina ONIG_ESCAPE_UCHAR_COLLISION y luego incluya oniguruma.h.
Si desea deshabilitar la definición del tipo regex_t en oniguruma.h, defina ONIG_ESCAPE_REGEX_T_COLLISION y luego incluya oniguruma.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 -lonig
Si desea utilizar la biblioteca de enlaces estáticos (onig_s.lib) en Win32, agregue la opción -DONIG_EXTERN=extern al compilador de C.
| Archivo | Descripción |
|---|---|
| muestra/callout.c | ejemplo de llamadas |
| muestra/recuento.c | ejemplo de leyenda incorporada *COUNT |
| muestra/echo.c | ejemplo de llamadas de nombre definidas por el usuario |
| muestra/codificar.c | ejemplo de algunas codificaciones |
| muestra/listcap.c | ejemplo del historial de captura |
| muestra/nombres.c | ejemplo de devolución de llamada de grupo con nombre |
| muestra/posix.c | Muestra de API POSIX |
| muestra/regset.c | ejemplo de uso de la API RegSet |
| muestra/escaneo.c | ejemplo de uso de onig_scan() |
| muestra/simple.c | ejemplo del mínimo (Oniguruma API) |
| muestra/sql.c | ejemplo de los metacaracteres variables |
| muestra/propiedad_usuario.c | ejemplo de propiedad Unicode definida por el usuario |
Programas de prueba
| Archivo | Descripción |
|---|---|
| muestra/sintaxis.c | Prueba de sintaxis en Perl, Java y ASIS. |
| muestra/crnl.c | --enable-crnl-como-prueba-terminador de línea |
| Archivo | Descripción |
|---|---|
| oniguruma.h | Archivo de encabezado API de Oniguruma (público) |
| onig-config.in | plantilla de programa de verificación de configuración |
| 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 definiciones de sintaxis integradas |
| 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 |
| oniggnu.h | Archivo de encabezado API de expresiones regulares de GNU (público) |
| reggnu.c | Funciones API de expresiones regulares de GNU |
| onigposix.h | Archivo de encabezado API POSIX (público) |
| regposerr.c | Función de mensaje de error POSIX |
| regposix.c | Funciones API POSIX |
| mktable.c | generador de tablas de tipos de caracteres |
| ascii.c | codificación ASCII |
| euc_jp.c | Codificación EUC-JP |
| euc_tw.c | Codificación EUC-TW |
| euc_kr.c | Codificación EUC-KR, EUC-CN |
| sjis.c | Codificación Shift_JIS |
| grande5.c | Codificación Big5 |
| gb18030.c | Codificación GB18030 |
| koi8.c | Codificación KOI8 |
| koi8_r.c | Codificación KOI8-R |
| cp1251.c | Codificación CP1251 |
| iso8859_1.c | ISO-8859-1 (Latín-1) |
| iso8859_2.c | ISO-8859-2 (Latín-2) |
| iso8859_3.c | ISO-8859-3 (Latín-3) |
| iso8859_4.c | ISO-8859-4 (Latín-4) |
| iso8859_5.c | ISO-8859-5 (cirílico) |
| iso8859_6.c | ISO-8859-6 (árabe) |
| iso8859_7.c | ISO-8859-7 (griego) |
| iso8859_8.c | ISO-8859-8 (hebreo) |
| iso8859_9.c | ISO-8859-9 (latín-5 o turco) |
| iso8859_10.c | ISO-8859-10 (Latin-6 o Nórdico) |
| iso8859_11.c | ISO-8859-11 (tailandés) |
| iso8859_13.c | ISO-8859-13 (Latin-7 o Borde Báltico) |
| iso8859_14.c | ISO-8859-14 (Latin-8 o Celta) |
| iso8859_15.c | ISO-8859-15 (Latin-9 o Europa occidental con euro) |
| iso8859_16.c | ISO-8859-16 (Latín-10) |
| utf8.c | Codificación UTF-8 |
| utf16_be.c | Codificación UTF-16BE |
| utf16_le.c | Codificación UTF-16LE |
| utf32_be.c | Codificación UTF-32BE |
| utf32_le.c | Codificación UTF-32LE |
| unicode.c | códigos comunes de codificación Unicode |
| unicode_fold_data.c | Datos de plegado Unicode |
| ventanas/testc.c | Programa de prueba para Windows (VC++) |