一整天都在努力让它工作,但我不太擅长正则表达式。
在我的案例中,格式正确的字符串看起来像
String s = "10 LET D = 4";
我正在尝试创建一个正则表达式以确保它的格式正确。
现在我正在做
boolean b = s.matches("[0-9]+ GOTO|LET [a-zA-Z] +|= [0-9]+");
但我知道我的 GOTO|LET 有问题,因为我只是编造了它。它也不适用于它周围的括号,所以我现在有点迷路了。我想用正则表达式做的事情甚至可能吗?如果没有,还有其他建议吗?
最佳答案
假设您允许语法 GOTO
或 LET
,在这些术语周围加上括号应该可以解决问题。
此外,我在 +
和 =
周围添加了分组(括号)。这是避免冲突的快速方法,因为 +
是正则表达式语法的一部分。
boolean b = s.matches("[0-9]+ (GOTO|LET) [a-zA-Z] [+=] [0-9]+");
注意:我同意其他用户的看法,如果这是更大语法的一部分,那么解析器可能更适合。
关于java - 匹配可能单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6590672/