java正则表达式 两个条件怎么写?本来一个过滤条件的时候是可以的,加多了另一个条件就不行了

请看图片:Pattern pattern1 = Pattern.compile("^yc.*"); Matcher matcher1 = pattern1.matcher(user.getLoginName()); boolean b1= matcher1.matches(); Pattern pattern2 = Pattern.compile("^gz.*"); Matcher matcher2 = pattern2.matcher(user.getLoginName()); boolean b2= matcher2.matches(); if(b1==false || b2==false){}

根据你的判断上来看,你是希望只要前面这个条件或者后面这个条件满足判断就会执行到If里面,“”||“”是或:表示左右两个条件满足其中一个就会执行到IF里面,如果你希望要两个条件多要满足才执行到IF里面的话就是用“”&&“”
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-11-15
^[yc|gz].*追问

大神,^[yc|gz].*这样是可以了,可是为什么^[yc|ng].* 和^[yc|gg].* 都能把字符串“gzzzcgw”过滤掉呢?无论是ng,gg,ag,ga,gb,gc只要有g都能把字符串“gzzzcgw”过滤掉了,可是我要的是过滤掉含“gz”开头的字符串而不是“g”开头的字符串。。。

追答

我明白你的意思了,^yc|gg.*这样就可以了

追问

厉害,还有一个小问题,^yc|gz.*这样虽然是可以过滤以“gz”开头的字符串了,但是过滤不了以“yc”开头的字符串。。。我尝试了一下改成^gz|yc.*,然后就变成只能过滤yc开头的字符串,gz开头就过滤不了了。。。

追答

(^yc|gz).*,不好意思太久没写了有点生了

本回答被提问者采纳
相似回答