Ada中的正则表达式?

4
我对Ada非常陌生,我正在尝试处理一些文本。 我想做的就是读取文件,并删除任何不是字母、空格或换行符的内容。 因此,删除所有标点符号和数字。 在其他语言中,我会创建一个简单的 [^a-zA-Z] 正则表达式,查看每个字符并删除它是否符合正则表达式,但我似乎找不到有关Ada正则表达式的任何文档。 那么,Ada有正则表达式吗? 如果没有,我应该如何进行简单的文本编辑。
谢谢, -jb
3个回答

10

如果您使用GNAT编译器,有一组名为GNAT.RegExpGNAT.RegPatGNAT.Spitbol的包可用于此任务。

请注意,它不是类似于Perl的标准正则表达式,而是基于SNOBOL4。然而,从一种类型的正则表达式转换为另一种类型应该不会很难。


我看到了关于GNAT RegEx的一些内容,但我需要我的程序在Windows和Linux上运行,并且我认为GNAT只适用于Windows。 - jb.
2
booooo!gnat基于gcc,显然支持Linux和Unix平台!!而且gnat库专门编写为在这两个系统之间可移植。 - Adrien Plisson
哦,好的,谢谢你纠正我。就像我说的,我对Ada非常陌生 :) 那么,我会去查找那些GNAT包。 - jb.
1
由于您是新手,您可能不知道您可以在这里找到的所有好东西:http://libre.adacore.com/libre/。请享受! - Adrien Plisson
Snobol4模式匹配教程:http://burks.bton.ac.uk/burks/language/snobol/catspaw/tutorial/ch4.htm - Nate C-K

1

1

如果我是你,我可能会看一下Gnat Snobol的东西。

然而,有一个可用于一般词法分析(类似于Boot's Spirit)的项目叫做OpenToken。对于稍微复杂一些的任务,你可能会发现它很有用。

我没有使用过现代版本,但在我担任主管时,该项目与编译器无关。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接