我的情况需要匹配数字或带下划线的数字。
要匹配数字,可以轻松编写[0-9]+
。
但如何匹配带下划线的数字?如何在Antlr4的语法中表达带下划线的数字?谁能帮我?谢谢你的时间。
答案 0 :(得分:1)
ANTLR使用令牌/字符流,因此RAW WORD文档数据可能会有某种类型的" escape"令牌表示"开始下划线"和#34;停止下划线",这是可选的;
(警告......我是一名ANTLR新手,但我会尝试这样做)
String x = (String) ((JavascriptExecutor)driver).executeScript("return arguments[0].getAttribute('x')", element);
上述可能不会起作用,因为单词中的UNDERLINING可以从句子的开头开始。因此,您可能希望解析器查找START_UNDERLINE和STOP UNDERLINE事件。
//
// Define Start Underline and Stop Underline tokens
fragment START_UNDERLINE : "SomeWordToken(s) possibly \uxxx values";
fragment STOP_UNDERLINE : "SomeOtherToken(s) possibly \uxxx values";
DIGITS : [0-9]+
UNDERLINED_DIGITS : START_UNDERLINE DIGITS STOP_UNDERLINE;
然后,您可以使用用于输入/退出下划线事件的Listener java函数来根据需要修改文本。你可以选择添加lexer"模式" START / STOP下划线,但我发现使用IMPORTED词法分析器(这是我使用的),模式不会导入。所以现在我没有使用模式。
免责声明......我是一名ANTLR新手,只有30分钟 - 3天的时间比你更多。只是想帮助:)。
-R