Pergunta
Eu sou muito novo para Ada, e eu estou tentando fazer algum trabalho simples com algum texto. Tudo que eu quero fazer é ler em um arquivo, e retirar tudo o que não é uma letra, espaço ou nova linha. assim remover toda a pontuação e números. Em outras línguas que eu só iria criar um simples [^ a-zA-Z] expressão regular, olhar para cada personagem e excluí-lo se ele se ajustar à RegEx, mas eu não consigo encontrar qualquer documentação sobre RegEx de em Ada. Assim, existem RegEx de em Ada? Se não, qual é a melhor maneira para eu ir sobre edição de texto simples como este.
muito obrigado, -jb
Solução
Se você estiver usando o compilador GNAT, há um conjunto de pacotes chamados GNAT.RegExp
, GNAT.RegPat
e GNAT.Spitbol
feita para esta tarefa.
cuidado que não é regexp padrão ala perl, mas é baseado em SNOBOL4. no entanto, não deve ser muito difícil para converter de um tipo de expressão regular para outro.
Outras dicas
Você pode querer passar por este exemplo, e basta olhar para os caracteres que você deseja ignorar e não colocá-los para a nova string.
Qual versão do Ada você está usando?
eu provavelmente olhar para coisas do mosquito SNOBOL em seus sapatos.
No entanto, há um projeto disponível para análise léxica geral (um pouco como o Espírito de inicialização) chamada OpenToken . Para tarefas slighly mais complexas, você pode achar que é útil.
Eu não tenho trabalhado com a encarnação moderna, mas quando eu era a liderança nele o projeto foi compilador-agnóstico.