首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎么检测1(2&3)是不合法的,而 1|(2&3) 是合法的

2012-04-07 
如何检测1(2&3)是不合法的,而 1|(2&3) 是合法的。表达式还可以再长一点的比如:1|(2&7)&5是合法的。当然1|2&7

如何检测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));

不支持嵌套括号。头好晕乎啊 @_@


[解决办法]
没看出来规律

热点排行