【发布时间】:2023-04-04 13:33:02
【问题描述】:
我有一个方法可以验证字符串并确保它没有任何空格或大写字符:
boolean validate(String input) {
if(input.matches(".*\\S.*([A-Z]+)")) {
return false;
}
return true;
}
不幸的是,当我运行它时,它根本不起作用。它不会抛出任何异常,它只允许所有输入字符串(“HelloWorld”、“hello world”、“Hello world”等)通过验证。有什么想法我哪里出错了吗?
【问题讨论】:
-
如果您的字符串至少有一个 非空白 字符,然后至少有一个大写字母,则您的正则表达式将匹配。它不会执行您想要的匹配。
-
你最好使用“负正则表达式”和
.find();即final Pattern wsOrUpper = Pattern.compile("[A-Z\\s]"),然后尝试wsOrUpper.matcher(input).find())
标签: java regex whitespace casing