java - 匹配可能单词的正则表达式

标签 java regex

一整天都在努力让它工作,但我不太擅长正则表达式。

在我的案例中,格式正确的字符串看起来像

String s = "10 LET D = 4";

我正在尝试创建一个正则表达式以确保它的格式正确。

现在我正在做

boolean b = s.matches("[0-9]+ GOTO|LET [a-zA-Z] +|= [0-9]+");

但我知道我的 GOTO|LET 有问题,因为我只是编造了它。它也不适用于它周围的括号,所以我现在有点迷路了。我想用正则表达式做的事情甚至可能吗?如果没有,还有其他建议吗?

最佳答案

假设您允许语法 GOTOLET,在这些术语周围加上括号应该可以解决问题。

此外,我在 += 周围添加了分组(括号)。这是避免冲突的快速方法,因为 + 是正则表达式语法的一部分。

boolean b = s.matches("[0-9]+ (GOTO|LET) [a-zA-Z] [+=] [0-9]+");

注意:我同意其他用户的看法,如果这是更大语法的一部分,那么解析器可能更适合。

关于java - 匹配可能单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6590672/

相关文章:

java - 我可以在浏览器的 onbeforeunload 事件上执行启用 AJAX 的 Web 服务方法吗?

java - JSoup.connect 某些请求出现 403 错误

regex - Grep:无效的重复计数

php - 正则表达式在 php 文件中查找函数参数

java - 使用字符串引用原始文件夹中的文件

Java SWT 浏览器。超高清 (4K) 或更高分辨率屏幕上的不同输出

java - jboss url 形式的 servlet

第一行 < 和 "!"的 Java 正则表达式

javascript - 如何解释正则表达式中特殊字符的不同处理方式?

regex - 正则表达式对比字符串解析