当前位置: 首页 > 知识库问答 >
问题:

用于复制令牌的ANTLR4 Java插件正则表达式

宗晟
2023-03-14

我正在用ANTLR4编写一个语法,我想为一个可以是int或float的方程建立一个规则,但不能两者兼而有之。到目前为止,我已经:

equation: (INT | FLOAT) OPERATION (INT | FLOAT);

我在这里找到了一个正则表达式“备忘单”。此页面声明“\1”表示其内容应与组1相同。

然而,当我尝试使用Antlr时,它没有起作用。我用的是:

equation: (INT|FLOAT) OPERATOR '\1';

那么有人知道我可以检查组2和组1是否相同的方法吗?

共有1个答案

包承望
2023-03-14

Antltr处理此问题的方法是直接指定什么是可接受的:

equation : FLOAT OPERATION FLOAT    #eqFloat
         | INT   OPERATION INT      #eqInt
         ;

将无法识别混合浮点数/int操作。如果不需要两种类型方程之间的解析树区别,请删除替代标签

 类似资料:
  • 我正在努力想出一个正则表达式,它只能在单词的开头找到符号。例如: 这里: 但不是这里:

  • 问题内容: 我想在Java中构建一个正则表达式,该正则表达式将在FilenameFilter中传递以过滤目录中的文件。 问题是我无法理解正则表达式“思维模型”的问题:) 这是我用来选择要排除的文件的正则表达式 (((ABC | XYZ))+ \ w * Test.xml 我想做的是选择所有以Test.xml结尾但不以ABC或XYZ开头的文件。 您能否添加任何可以帮助我应对正则表达式的资源。 谢谢

  • 如何在不包含连续子字符串baa的字母表{a,b,c}上表达正则表达式?

  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?

  • 问题内容: 我有这小段代码 应该打印 但是它什么也没打印! 问题答案: 欢迎使用Java的错误命名方法…它尝试并匹配所有输入。不幸的是,其他语言也纷纷效仿:( 如果要查看正则表达式是否与输入文本匹配,请使用和匹配器的方法: 如果确实要查看输入是否仅包含小写字母,则可以使用,但需要匹配一个或多个字符:将a附加+到字符类中,如中所示。或使用和。

  • 有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。