在以下示例中:
class ZiggyTest2{
public static void main(String[] args){
Pattern p = Pattern.compile("Water water WATER everywhere");
Matcher m = p.matcher("water");
while(m.find()){
System.out.println(m.start() + " " + m.group());
}
System.out.println("[Done]");
}
}
m.find()方法始终为false,因此找不到字符串“water”。这是什么原因?
答案 0 :(得分:2)
你已经颠倒了字符串:
Pattern
编译正则表达式,Matcher
适用于输入。你应该:
Pattern p = Pattern.compile("water");
Matcher m = p.matcher("Water water WATER everywhere");
另请注意,如果您需要不区分大小写的匹配,则需要使用以下任一方式初始化模式:
Pattern p = Pattern.compile("water", Pattern.CASE_INSENSITIVE);
// or:
Pattern p = Pattern.compile("(?i)water");