我想明白,括号里是我的表达方式。我创建了这样的正则表达式 -
public static final String complexValue = "([-]?[(].+[)])"
但是我在这样的输入字符串上失败了-
String st = "(4+6)+(3)"
有没有办法创建这样的 regExp,该字符串(5+x)
匹配它和字符串(4+6)+(3)
no。
字面上的答案是肯定的:"^\\(5\\+x\\)$"
做你问的,但不是你想要的。
问题是,不清楚你想要什么((4)+(6))
:它应该匹配吗?你想允许括号的潜在无限嵌套,还是只允许一对外括号而不允许内括号?
在第一种情况下,您的语法不规则,因此正则表达式无法解析它。(我似乎记得有“不规则的正则表达式”方言,但 IIRC java 实现不在其中)。
在第二种情况下,类似的东西"^\\([^)]+\\)$"
可以完成这项工作。
所以你想匹配括号括起来的两个数字的加法吗?然后以下应该工作。
^\(\-?\d+\+\-?\d+\)$