62,615
社区成员
发帖
与我相关
我的任务
分享
String regex = "^(?=[abcd]+$)(?=.*?a)(?=[^c]*?c?[^c]*$)(?=[^d]*?d[^d]*?d[^d]*d[^d]*$).+$";
String regex = "^(?=[abcd]+$)(?=.*?a)(?=[^c]*?c?[^c]+$)(?=[^d]*?d[^d]*?d[^d]*d[^d]*$).+$";
String regex = "^(?=[abcd]+$)(?=.*?a)(?=[^c]*?c?[^c]+$)(?=[^d]*?d[^d]*?d[^d]*d[^d]*$).+$";
把正则改成这样就没问题了.之前的表达式有一个符号用错了.
这个正则并不难.建议你可以了解下正则.特别这题目无非就主要用到 (?=)这个而已.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test{
public static void main(String[] args){
String content = "bcdadd";
String regex = "^(?=[abcd]+$)(?=.*?a)(?=[^c]+c?[^c]+$)(?=[^d]*?d[^d]*?d[^d]*d[^d]*$).+$";
Matcher matcher = Pattern.compile(regex).matcher(content);
System.out.println(matcher.matches());
}
}