我目前正在尝试创建一个软件组件,该组件将能够解释动态字符串,例如:

%TO_LOWER%(%DELETE_WHITESPACES%("A SAMPLE TEXT"))

这将导致以下字符串:
asampletext

我希望能够使用语义参数等定义一组可用的函数。
我已经知道(或多或少)如何使用正则表达式。

我的问题是:
  • 为此目的,词法分析/解析方法比regexp好吗?还是我应该只使用regexp而忘了它?
  • Java中是否已经存在这样的库?
  • 您知道任何显示一些示例解析/词法算法的教程吗?

  • 谢谢!

    最佳答案



    正则表达式无法表达递归语法,您的语法似乎需要递归语法。如果是这种情况,则正则表达式根本无法解决问题。



    这不是图书馆要解决的问题。您要么需要使用解析器生成器系统(例如Antlr或Javacc)来生成词法分析器和解析器,要么从头开始对其进行编写。前一种方法可能更好……除非您已修读涵盖该领域的大学水平的科目,或准备进行大量阅读。



    Antlr和Javacc都有大量的教程 Material 和示例。

    09-11 18:50
    查看更多