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-devel
yum install oniguruma
apt install libonig5
pacman -S oniguruma
zypper install oniguruma
autoreconf -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++) |