https://github.com/kkos/oniguruma
Oniguruma é uma biblioteca moderna e flexível de expressões regulares. Abrange recursos de diferentes implementações de expressões regulares que tradicionalmente existem em diferentes idiomas.
A codificação de caracteres pode ser especificada por objeto de expressão regular.
Codificações de caracteres suportadas:
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
Ao usar o script de configuração, se você tiver a API POSIX habilitada em uma versão anterior (desabilitada por padrão na 6.9.5) e precisar de compatibilidade binária do aplicativo com a API POSIX, especifique "--enable-binary-compatível-posix-api= sim" em vez de "--enable-posix-api=yes". A partir da versão 6.9.6, "--enable-posix-api=yes" oferece suporte apenas à compatibilidade no nível de origem da versão 6.9.5 e anteriores sobre a API POSIX. (Edição #210)
Licença BSD.
dnf install oniguruma-develyum install onigurumaapt install libonig5pacman -S onigurumazypper install onigurumaautoreconf -vfi (* caso: o script de configuração não foi encontrado.)
./configure
fazer
fazer instalar
desinstalar
fazer desinstalar
verificação de configuração
onig-config --cflags onig-config --libs onig-config --prefix onig-config --exec-prefix
construir biblioteca
.make_win.bat
onig_s.lib: biblioteca de link estático onig.dll: biblioteca de link dinâmico
fazer programas de teste
.make_win.bat teste completo
Alternativamente, você pode construir e instalar o oniguruma usando o gerenciador de dependência vcpkg:
A porta oniguruma no vcpkg é mantida atualizada pelos membros da equipe da Microsoft e colaboradores da comunidade. Se a versão estiver desatualizada, crie um problema ou solicitação pull no repositório vcpkg.
Consulte doc/RE ou doc/RE.ja para japonês.
Inclua oniguruma.h em seu programa. (API Oniguruma) Consulte doc/API para API Oniguruma.
Se você deseja desabilitar a definição do tipo UChar (== unsigned char) em oniguruma.h, defina ONIG_ESCAPE_UCHAR_COLLISION e inclua oniguruma.h.
Se você deseja desabilitar a definição do tipo regex_t em oniguruma.h, defina ONIG_ESCAPE_REGEX_T_COLLISION e inclua oniguruma.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 -lonig
Se você quiser usar a biblioteca de link estático (onig_s.lib) no Win32, adicione a opção -DONIG_EXTERN=extern ao compilador C.
| Arquivo | Descrição |
|---|---|
| amostra/callout.c | exemplo de chamadas |
| amostra/contagem.c | exemplo de texto explicativo integrado *COUNT |
| amostra/eco.c | exemplo de chamadas de nome definidas pelo usuário |
| amostra/codificar.c | exemplo de algumas codificações |
| amostra/listcap.c | exemplo do histórico de captura |
| amostra/nomes.c | exemplo do retorno de chamada do grupo nomeado |
| amostra/posix.c | Exemplo de API POSIX |
| amostra/regset.c | exemplo de uso da API RegSet |
| amostra/scan.c | exemplo de uso de onig_scan() |
| amostra/simples.c | exemplo do mínimo (API Oniguruma) |
| amostra/sql.c | exemplo dos metacaracteres variáveis |
| amostra/user_property.c | exemplo de propriedade Unicode definida pelo usuário |
Programas de teste
| Arquivo | Descrição |
|---|---|
| amostra/sintaxe.c | Teste de sintaxe Perl, Java e ASIS. |
| amostra/crnl.c | --enable-crnl-as-line-terminator teste |
| Arquivo | Descrição |
|---|---|
| oniguruma.h | Arquivo de cabeçalho da API Oniguuma (público) |
| onig-config.in | modelo de programa de verificação de configuração |
| 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ções de sintaxe integradas |
| 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 |
| onignnu.h | Arquivo de cabeçalho da API GNU regex (público) |
| reggnu.c | Funções da API regex GNU |
| onigposix.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 |
| mktable.c | gerador de tabela de tipo de caractere |
| ascii.c | Codificação ASCII |
| euc_jp.c | Codificação EUC-JP |
| euc_tw.c | Codificação EUC-TW |
| euc_kr.c | Codificação EUC-KR, EUC-CN |
| sjis.c | Codificação Shift_JIS |
| big5.c | Codificação Big5 |
| gb18030.c | Codificação GB18030 |
| koi8.c | Codificação KOI8 |
| koi8_r.c | Codificação KOI8-R |
| cp1251.c | Codificação CP1251 |
| iso8859_1.c | ISO-8859-1 (Latim-1) |
| iso8859_2.c | ISO-8859-2 (Latim-2) |
| iso8859_3.c | ISO-8859-3 (Latim-3) |
| iso8859_4.c | ISO-8859-4 (Latim-4) |
| iso8859_5.c | ISO-8859-5 (cirílico) |
| iso8859_6.c | ISO-8859-6 (árabe) |
| iso8859_7.c | ISO-8859-7 (Grego) |
| iso8859_8.c | ISO-8859-8 (hebraico) |
| iso8859_9.c | ISO-8859-9 (latim-5 ou turco) |
| iso8859_10.c | ISO-8859-10 (Latim-6 ou Nórdico) |
| iso8859_11.c | ISO-8859-11 (tailandês) |
| iso8859_13.c | ISO-8859-13 (Latin-7 ou Baltic Rim) |
| iso8859_14.c | ISO-8859-14 (latim-8 ou celta) |
| iso8859_15.c | ISO-8859-15 (Latin-9 ou Europa Ocidental com Euro) |
| iso8859_16.c | ISO-8859-16 (latim-10) |
| utf8.c | Codificação UTF-8 |
| utf16_be.c | Codificação UTF-16BE |
| utf16_le.c | Codificação UTF-16LE |
| utf32_be.c | Codificação UTF-32BE |
| utf32_le.c | Codificação UTF-32LE |
| unicode.c | códigos comuns de codificação Unicode |
| unicode_fold_data.c | Dados de dobramento Unicode |
| windows/testc.c | Programa de teste para Windows (VC++) |