为什么同样的一段正则表达式, JS 和 Java 的匹配结果不一样呢?

查看 29|回复 2
作者:NeroKamin   
const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^a-zA-Z\d"'\\|])(?!.*["'\\|])/;
console.log(regex.test("AaBb123!@#"));
// output: true
public static void main(String[] args) {
        Pattern compile = Pattern.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^a-zA-Z\\d\"'\\\\|])(?!.*[\"'\\\\|])");
        Matcher matcher = compile.matcher("AaBb123!@#");
        System.out.println(matcher.matches());
        // output: false
}
丢给 AI 也看不出什么问题,AI 的结论是两段代码输出都应该一样为 true
revlis7   
\d 多了一个斜杠
NeroKamin
OP
  
@revlis7 #1 改成\d 会报错
您需要登录后才可以回帖 登录 | 立即注册

返回顶部