https://github.com/k-takata/Onigmo
Onigmo é uma biblioteca de expressões regulares derivada do Oniguruma. Ele se concentra no suporte a novas expressões como K , R , (?(cond)yes|no) e etc. que são suportadas em Perl 5.10+.
Como o Onigmo é usado como a biblioteca regexp padrão do Ruby 2.0 ou posterior, muitos patches são portados do Ruby 2.x.
Veja também a página Wiki: https://github.com/k-takata/Onigmo/wiki
Licença BSD.
./autogen.sh (se configure não existir.)./configuremakemake installteste
fazer teste
desinstalar
fazer desinstalar
verificação de configuração
onigmo-config --cflags onigmo-config --libs onigmo-config --prefix onigmo-config --exec-prefix
Execute build_nmake.cmd . build_x64 ou build_x86 será usado como diretório de trabalho/saída.
onigmo_s.lib: static link library
onigmo.lib: import library for dynamic link
onigmo.dll: dynamic link library
teste (ASCII/Shift_JIS/EUC-JP/Unicode)
Execute build_nmake.cmd test . Python (com o mesmo número de bits do Onigmo) é necessário para executar os testes.
Execute mingw32-make -f win32/Makefile.mingw . build_x86-64 , build_i686 e etc. serão usados como um diretório de trabalho/saída.
libonigmo.a: static link library
libonigmo.dll.a: import library for dynamic link
onigmo.dll: dynamic link library
teste (ASCII/Shift_JIS/EUC-JP/Unicode)
Execute mingw32-make -f win32/Makefile.mingw test . Python (com o mesmo número de bits do Onigmo) é necessário para executar os testes.
Se você usa MinGW no MSYS2, também pode usar ./configure e make como Unix. Neste caso, o nome da DLL terá o número da versão da API. Por exemplo:
libonigmo-6.dll
Consulte doc/RE ou doc/RE.ja para japonês.
Inclua onigmo.h em seu programa. (API Onigmo) Consulte doc/API para API Onigmo.
Se você deseja desabilitar a definição do tipo UChar (== unsigned char ) em onigmo.h, defina ONIG_ESCAPE_UCHAR_COLLISION e inclua onigmo.h.
Se você deseja desabilitar a definição do tipo regex_t em onigmo.h, defina ONIG_ESCAPE_REGEX_T_COLLISION e inclua onigmo.h.
Exemplo de linha de comando de compilação/vinculação em Unix ou Cygwin, (prefixo == /usr/local case)
cc sample.c -L/usr/local/lib -lonigmo
Se você quiser usar a biblioteca de link estático (onigmo_s.lib) no Win32, adicione a opção -DONIG_EXTERN=extern ao compilador C.
| Arquivo | Descrição |
|---|---|
| amostra/simples.c | exemplo do mínimo (API Onigmo) |
| amostra/nomes.c | exemplo do retorno de chamada do grupo nomeado. |
| amostra/codificar.c | exemplo de algumas codificações. |
| amostra/listcap.c | exemplo do histórico de captura. |
| amostra/posix.c | Exemplo de API POSIX. |
| amostra/sql.c | exemplo dos metacaracteres variáveis. |
Programas de teste
| Arquivo | Descrição |
|---|---|
| amostra/sintaxe.c | Teste de sintaxe Perl, Java e ASIS. |
| amostra/crnl.c | Teste CRNL |
| Arquivo | Descrição |
|---|---|
| onigmo.h | Arquivo de cabeçalho da API Onigmo (público) |
| onigmo-config.in | modelo de programa de verificação de configuração |
| onigmo.py | Módulo Onigmo para Python |
| regência.h | arquivo de cabeçalho da estrutura de codificação de caracteres |
| regint.h | definições internas |
| regparse.h | definições internas para regparse.c e regcomp.c |
| regcomp.c | funções de compilação e otimização |
| regenc.c | estrutura de codificação de caracteres |
| regerror.c | função de mensagem de erro |
| regext.c | funções estendidas da API (API da versão deluxe) |
| regexec.c | funções de pesquisa e correspondência |
| regparse.c | funções de análise. |
| sintaxe de registro.c | funções de sintaxe padrão e definição de sintaxe integrada |
| regtrav.c | capturar funções de passagem de dados da árvore do histórico |
| regversão.c | função de informação da versão |
| st.h | arquivo de cabeçalho de funções de tabela hash |
| st.c | funções de tabela hash |
| onigmognu.h | Arquivo de cabeçalho da API GNU regex (público) |
| reggnu.c | Funções da API regex GNU |
| onigmoposix.h | Arquivo de cabeçalho da API POSIX (público) |
| regposerr.c | Função de mensagem de erro POSIX |
| regposix.c | Funções da API POSIX |
| enc/mktable.c | gerador de tabela de tipo de caractere |
| enc/ascii.c | Codificação ASCII-8BIT |
| enc/jis/ | Dados de propriedades JIS |
| enc/euc_jp.c | Codificação EUC-JP |
| enc/euc_tw.c | Codificação EUC-TW |
| enc/euc_kr.c | Codificação EUC-KR, EUC-CN |
| enc/shift_jis.c | Codificação Shift_JIS |
| enc/shift_jis.h | Parte comum da codificação Shift_JIS e Windows-31J |
| enc/windows_31j.c | Codificação Windows-31J (CP932) |
| enc/big5.c | Codificação Big5 |
| enc/gb18030.c | Codificação GB18030 |
| enc/gbk.c | Codificação GBK |
| enc/koi8_r.c | Codificação KOI8-R |
| enc/koi8_u.c | Codificação KOI8-U |
| enc/iso_8859.h | definição comum de codificação ISO-8859 |
| enc/iso_8859_1.c | ISO-8859-1 (Latim-1) |
| enc/iso_8859_2.c | ISO-8859-2 (Latim-2) |
| enc/iso_8859_3.c | ISO-8859-3 (Latim-3) |
| enc/iso_8859_4.c | ISO-8859-4 (Latim-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 (grego) |
| enc/iso_8859_8.c | ISO-8859-8 (hebraico) |
| enc/iso_8859_9.c | ISO-8859-9 (latim-5 ou turco) |
| enc/iso_8859_10.c | ISO-8859-10 (Latim-6 ou Nórdico) |
| enc/iso_8859_11.c | ISO-8859-11 (tailandês) |
| enc/iso_8859_13.c | ISO-8859-13 (Latin-7 ou Baltic Rim) |
| enc/iso_8859_14.c | ISO-8859-14 (latim-8 ou celta) |
| enc/iso_8859_15.c | ISO-8859-15 (Latin-9 ou Europa Ocidental com Euro) |
| enc/iso_8859_16.c | ISO-8859-16 (latim-10) |
| enc/utf_8.c | Codificação UTF-8 |
| enc/utf_16be.c | Codificação UTF-16BE |
| enc/utf_16le.c | Codificação UTF-16LE |
| enc/utf_32be.c | Codificação UTF-32BE |
| enc/utf_32le.c | Codificação UTF-32LE |
| enc/unicode.c | códigos comuns de codificação Unicode |
| enc/unicode/ | Dados de dobramento de caso Unicode e dados de propriedades |
| enc/windows_1250.c | Codificação Windows-1250 (CP1250) (Europa Central/Oriental) |
| enc/windows_1251.c | Codificação Windows-1251 (CP1251) (cirílico) |
| enc/windows_1252.c | Codificação Windows-1252 (CP1252) (latim) |
| enc/windows_1253.c | Codificação Windows-1253 (CP1253) (grego) |
| enc/windows_1254.c | Codificação Windows-1254 (CP1254) (turco) |
| enc/windows_1257.c | Codificação Windows-1257 (CP1257) (Baltic Rim) |
| enc/cp949.c | Codificação CP949 (usada apenas em Ruby) |
| enc/emacs_mule.c | Codificação interna do Emacs (usada apenas em Ruby) |
| enc/gb2312.c | Codificação GB2312 (usada apenas em Ruby) |
| enc/us_ascii.c | Codificação US-ASCII (usada apenas em Ruby) |
| win32/Makefile | Makefile para Win32 (VC++) |
| win32/Makefile.mingw | Makefile para Win32 (MinGW) |
| win32/config.h | config.h para Win32 |
| win32/onigmo.rc | arquivo de recurso para Win32 |