我对 Ada 很陌生,我正在尝试用一些文本做一些简单的工作。我要做的就是读入一个文件,并去掉任何不是字母、空格或换行符的内容。所以删除所有的标点符号和数字。在其他语言中,我只会创建一个简单的 [^a-zA-Z] 正则表达式,查看每个字符并在符合 RegEx 的情况下将其删除,但我似乎在 Ada 中找不到任何关于 RegEx 的文档。那么,Ada 中有 RegEx 吗?如果没有,那么对我来说进行这样的简单文本编辑的最佳方式是什么。
非常感谢,-jb
如果您使用的是 GNAT 编译器,则有一组名为 的包,GNAT.RegExp
用于此任务。GNAT.RegPat
GNAT.Spitbol
请注意,它不是标准的正则表达式 ala perl,而是基于 SNOBOL4。但是,从一种类型的正则表达式转换为另一种类型的正则表达式应该不是很困难。
你可能想通过这个例子,只寻找你想忽略的字符,不要把它们放到新的字符串中。
您使用的是哪个版本的 Ada?
我可能会看看你鞋子里的 Gnat snobol 东西。
但是,有一个可用于一般词法分析的项目(有点像 Boot's Spirit),称为OpenToken。对于稍微复杂的任务,您可能会发现它很有用。
我没有使用过现代版本,但是当我担任该项目的负责人时,该项目与编译器无关。