正则当中的与
例子:要求字符串当中既有A又有B。
对于与,我们可以采用下面的方式:
其中PatternA为满足有A的条件,PatternB为满足B的条件
(?=PatternA)PatternB
于是我们就写表达式为:
String input="gewgwgABz";
String regex="^(?=.*[A]+.*).*[B]+.*$";
Matcher m = Pattern.compile(regex).matcher(input);
System.out.println(m.matches());
如果还想字符串中含有C呢?同样原理,(?=(?=PatternA)PatternB)PatternC就可以了。
正则当中的非
例子:要求字符串当中有A但是不能有B。
对于与,我们可以采用下面的方式:
其中PatternA为满足有A的条件,PatternB为满足B的条件
(?!PatternB)PatternA
于是我们表达式如下:
String input="gewgwgAz";
String regex="^(?!^.*[B]+.*$).*[A]+.*$";
Matcher m = Pattern.compile(regex).matcher(input);
System.out.println(m.matches());