我对Ada非常陌生,我正在尝试处理一些文本。 我想做的就是读取文件,并删除任何不是字母、空格或换行符的内容。 因此,删除所有标点符号和数字。 在其他语言中,我会创建一个简单的 [^a-zA-Z] 正则表达式,查看每个字符并删除它是否符合正则表达式,但我似乎找不到有关Ada正则表达式的任何文档。 那么,Ada有正则表达式吗? 如果没有,我应该如何进行简单的文本编辑。
谢谢, -jb
谢谢, -jb
如果您使用GNAT编译器,有一组名为GNAT.RegExp
、GNAT.RegPat
和GNAT.Spitbol
的包可用于此任务。
请注意,它不是类似于Perl的标准正则表达式,而是基于SNOBOL4。然而,从一种类型的正则表达式转换为另一种类型应该不会很难。
如果我是你,我可能会看一下Gnat Snobol的东西。
然而,有一个可用于一般词法分析(类似于Boot's Spirit)的项目叫做OpenToken。对于稍微复杂一些的任务,你可能会发现它很有用。
我没有使用过现代版本,但在我担任主管时,该项目与编译器无关。