在Java中是否存在类似于pyparsing的库?

时间:2008-11-29 14:16:39

标签: java python parsing pyparsing

我需要为Java中的类似html的标记语言的非常简化版本快速构建解析器。在python中,我会使用pyparsing库来执行此操作。 Java有类似的东西吗?请不要建议已经在那里进行html解析的库,我的应用程序是一个学校作业,它将展示走过一个对象树并使用访问者模式序列化为文本,所以我不会在这里考虑现实世界的术语。基本上我在这里需要的只是标签,属性和文本节点。

5 个答案:

答案 0 :(得分:7)

另一个好的解析器生成器是ANTLR,可能就是你要找的东西。

答案 1 :(得分:3)

对于您的使用可能有点过分,但javacc是一个出色的工业级解析器生成器。我已经多次使用过这个程序/库,它可靠且值得学习,特别是如果你要使用语言和编译器。以下是上述网站中对该计划的描述:

  

Java Compiler Compiler [tm](JavaCC [tm])是用于Java [tm]应用程序的最流行的解析器生成器。解析器生成器是一种读取语法规范并将其转换为可识别与语法匹配的Java程序的工具。除了解析器生成器本身之外,JavaCC还提供与解析器生成相关的其他标准功能,例如树构建(通过JavaCC附带的JJTree工具),操作,调试等。

答案 2 :(得分:3)

在Java中快速搜索解析器生成器会产生JParsec。我从来没有用它 - 但它的灵感来自Haskell库,所以根据定义它一定很好: - )

答案 3 :(得分:2)

我喜欢JParsec(我刚刚感谢Torsten发现),因为它不会生成代码...... :-)可能效率较低,但对于小任务来说足够了。
我找到了一个类似的库,JTopas

Java Source有一个很好的解析器列表(生成器或不生成器)。

答案 4 :(得分:1)

java中的字符串处理有很多选择。 也许最基本的java.util.Scannerjava.util.StringTokenizer类对你有帮助吗?

另一个不错的选择可能是the org.apache.commons.lang.text库。 http://commons.apache.org/lang/apidocs/org/apache/commons/lang/text/package-summary.html