我正在寻找一个工具,可以验证是否一个给定的文本\段落主题的特定格式。
例如:
我可以检查文本是否如下所示:
xxx{
sss:aaa;
}
yyy(); 最好是开源工具,具有简单的规则集,如xml或其他。
我所说的文本是指我从例如fgets()获得的字符串,或者任何从文件中读取的函数。
发布于 2014-02-28 03:37:29
对于这种情况,我建议使用解析器(例如,请参阅What is Parse/parsing?)。您可以使用解析器生成器(如Yacc或其免费的相当于GNU的Bison,或任意数量的other parser generators,其中许多也可以免费获得)来根据您想要解析的语言的定义构建一个解析器。
大多数解析器用于将符合语法的文本转换为其他形式(例如,中间语言或机器代码),但这并不是必需的-在您的情况下,如果文本符合给定的语法,解析器可以简单地说“是”(至少)。
简单语法的解析器可以手动构建,但是,如果您有可用的工具,根据我的经验,使用解析器生成器更容易,也更健壮。
此外,您所显示的文本类似于用C语言编写的一部分代码(类似于结构声明,然后是函数调用),因此您将能够重用现有的用于C的Yacc语法(如this one )中所需的语法部分。
https://stackoverflow.com/questions/22077907
复制相似问题