任何人都可以解释一下为什么这个正则表达式不能捕获输入。我需要捕获正则表达式中提到的特殊字符。
final String REGEX="[.,%*$#@?^<!&>'|/\\\\~\\[\\]{}+=\"-]*";
Pattern pattern = Pattern.compile(REGEX);
Matcher matcher = pattern.matcher("2c450807-4a4c-4f18-bf4f-5a100ced87a0");
if (matcher.matches()) {
System.out.println("found");
}
else{
System.out.println("not found!");
}
这将打印“未找到!”。请帮助我。
最佳答案
代替 matcher.matches()
使用:
matcher.find()
matcher.matches()
期望匹配完整的输入。
最好使用这个正则表达式:
final String REGEX="[.,%*$#@?^<!&>'|/\\\\~\\[\\]{}+=\"-]";
将*
放在前面也会使其匹配空字符串。
关于java - 正则表达式验证不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32399600/