如何检测1(2&3)是不合法的,而 1|(2&3) 是合法的。
表达式还可以再长一点的
比如:
1|(2&7)&5是合法的。当然1|2&7&5也合法。
但1|&2&7)&5不合法,不知说清楚了没有,呵呵!!!
------解决方案--------------------正则?
------解决方案--------------------正则表达式解决
------解决方案--------------------String expr = "(3&2|3|4)&4|(4&2&3)&3|(2|3&3)|3&2 ";
String pattern = "^(\\d+[|&])*((((\\((\\d+[|&])+\\d+\\)[|&])*(\\d+[|&])*)*\\d+)|([|&]?\\((\\d+[|&])+\\d+\\)))*$ ";
System.out.println(expr.matches(pattern));
不支持嵌套括号。头好晕乎啊 @_@
------解决方案--------------------没看出来规律