Estou lendo Design de Software para Flexibilidade (SDF) . O Exercício 2.10 pede para implementar o tradutor tanto para BRE quanto para ERE. O livro usa grep
para testar a string traduzida como (a.c)
em ERE para capturar algo como abc
ou adc
.
Eu uso Arch Linux.
Pela especificação POSIX 9.3.3 BRE Special Characters, \+
não é suportado pelo BRE.
Mas man grep
"Expressões Regulares Básicas vs Estendidas" permite \+
a opção padrão BRE .
A diferença acima parece estar implícita neste problema de especificações (referência deste controle de qualidade ):
O BRE corresponde ao tipo ed ou grep histórico
Mas ed
parece também apoiar\+
.
(Editado: este parágrafo está errado, pois este site não está em conformidade com o BRE quando a opção b está habilitada. (ab)
Em vez de \(ab\)
corresponderá a "ab".) https://www.regexplanet.com/advanced/postgresql/index.html pode suportar o mero BRE, mas é um pouco lento e não pode ser facilmente incorporado ao código do Scheme (estou aprendendo SICP e SDF, então não verifiquei a implementação do Http no Scheme. O livro acima usa shell para executargrep
). Eu uso expressão a\+c
e entrada abc
para testar com a opção b habilitada. Mostra "regex_matches()" sendo "(nenhum)".
Então existe uma ferramenta regex seguindo exatamente o BRE?