我正在尝试过滤文件夹中的文件。我需要不以“.xml-test”结尾的文件。以下正则表达式按预期工作(ok1,ok2,ok3 = false,ok4 = true)
String regex = ".+\\.xml\\-test$";
boolean ok1 = Pattern.matches(regex, "database123.xml");
boolean ok2 = Pattern.matches(regex, "database123.sql");
boolean ok3 = Pattern.matches(regex, "log_file012.txt");
boolean ok4 = Pattern.matches(regex, "database.xml-test");
现在我只需要否定它,但由于某种原因它不起作用:
String regex = "^(.+\\.xml\\-test)$";
我仍然得到 ok1,ok2,ok3 = false, ok4 = true
有任何想法吗?(正如人们指出的那样,这可以在没有正则表达式的情况下轻松完成。但为了论证,假设我必须使用单个正则表达式模式而没有别的(即 !Pattern.matches(..); 也是不允许的))