算术表达式的正则表达式
Regular expression for arithmetic expression
我正在尝试编写一个正则表达式来检查给定的字符串是否类似于
a + b, 2 + a + b, 3 + 6 * 9 + 6 * 5 + a * b, 等等...
只有 + 和 * 运算符。
我试过了
if (str.matches("(\d|\w \+|\*){1,} \d|\w"))
不幸的是它只处理像 3 * 7 ... (numeric * numeric) 这样的情况。
等待您的回答,感谢阅读。
将*
和+
放在字符class内。
str.matches("\w(?:\s[+*]\s\w)+");
这将处理简单和链式计算的情况
[0-9A-Za-a]*( ){0,}([+-/*]( ){0,}[0-9A-Za-a]*( ){0,})*
这会匹配,例如
- 1+2
- 1 + 2
- 1 + a * 14 / 9
(您可以通过更新 [+-/*]
来更改您想要的运算符)
我正在尝试编写一个正则表达式来检查给定的字符串是否类似于 a + b, 2 + a + b, 3 + 6 * 9 + 6 * 5 + a * b, 等等...
只有 + 和 * 运算符。
我试过了
if (str.matches("(\d|\w \+|\*){1,} \d|\w"))
不幸的是它只处理像 3 * 7 ... (numeric * numeric) 这样的情况。
等待您的回答,感谢阅读。
将*
和+
放在字符class内。
str.matches("\w(?:\s[+*]\s\w)+");
这将处理简单和链式计算的情况
[0-9A-Za-a]*( ){0,}([+-/*]( ){0,}[0-9A-Za-a]*( ){0,})*
这会匹配,例如
- 1+2
- 1 + 2
- 1 + a * 14 / 9
(您可以通过更新 [+-/*]
来更改您想要的运算符)