这一准则:
("[(\\d){1,} (*|+|-|/){1} (\\d){1,}]")应该抓住所有正确的数学运算,
(例如:"3+4“、"3+3*6+2/3-6*434234+5”、"345345+2342/3/3/4-5")
但不应该抓错人。
(例如:“3+-2”、"+1“、"456+/5”、"3+4+5+")
但它似乎根本没有捕捉到任何输入。这里怎么了?
发布于 2018-02-22 21:33:51
您忘记了必须用反斜杠对未转义的分隔符进行转义:
[(\\d){1,} (*|+|-|\/){1} (\\d){1,}]
^ Escaped with backslash编辑:
在Java中,您需要使用两个反斜杠,因为反斜杠在Java中也是一个转义字符:
Matcher match = Pattern.compile("[(\\\\d){1,} (*|+|-|\\/){1} (\\\\d){1,}]").matcher("3+3*6+2/3-6*434234+5");
String s = "";
while (match.find())
s += match.group() + "\n";
System.out.println(s);https://stackoverflow.com/questions/48937510
复制相似问题