任何人都可以解释为什么这个正则表达式没有抓住输入。我需要捕捉正则表达式中提到的特殊字符。
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!");
}
这会打印“未找到!”。请帮帮我。
答案 0 :(得分:1)
而不是matcher.matches()
使用:
matcher.find()
matcher.matches()
期望匹配完整输入。
使用此正则表达式也更好:
final String REGEX="[.,%*$#@?^<!&>'|/\\\\~\\[\\]{}+=\"-]";
将*
置于前面会使其与空字符串匹配。