1

我想明白,括号里是我的表达方式。我创建了这样的正则表达式 -

public static final String complexValue = "([-]?[(].+[)])"

但是我在这样的输入字符串上失败了-

String st = "(4+6)+(3)"

有没有办法创建这样的 regExp,该字符串(5+x)匹配它和字符串(4+6)+(3)no。

4

2 回答 2

2

字面上的答案是肯定的:"^\\(5\\+x\\)$"做你问的,但不是你想要的。

问题是,不清楚你想要什么((4)+(6)):它应该匹配吗?你想允许括号的潜在无限嵌套,还是只允许一对外括号而不允许内括号?

在第一种情况下,您的语法不规则,因此正则表达式无法解析它。(我似乎记得有“不规则的正则表达式”方言,但 IIRC java 实现不在其中)。

在第二种情况下,类似的东西"^\\([^)]+\\)$"可以完成这项工作。

于 2013-01-13T14:59:01.027 回答
0

所以你想匹配括号括起来的两个数字的加法吗?然后以下应该工作。

^\(\-?\d+\+\-?\d+\)$
于 2013-01-13T14:56:02.377 回答