gpt4 book ai didi

java - 如何在没有正则表达式的情况下解析字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:10:28 25 4
gpt4 key购买 nike

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

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

这将导致这个字符串:

asampletext

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

我的问题是:

  • 为此目的,词法分析/解析方式是否比正则表达式更好,还是我应该只使用正则表达式而忘记它?
  • Java 中是否已经存在这样的库?
  • 你知道任何显示一些示例解析/词法分析算法的教程吗?

谢谢!

最佳答案

Is lexing/parsing way better than regexp for such a purpose, or should I just go with regexp and forget about that?

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

Does such a library already exist in Java?

这不是图书馆可以解决的问题。您要么需要使用解析器生成器系统(例如 Antlr 或 Javacc)来生成词法分析器和解析器,要么几乎从头开始编写它们。前一种方法可能更好……除非你已经选修了涵盖该领域的单科类(class),或者准备进行广泛阅读。

Do you know any tutorial showing some sample parsing/lexing algorithms?

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

关于java - 如何在没有正则表达式的情况下解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12443540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com