2011-12-25 14 views
1

在下面的例子:使用模式匹配正則表達式類

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()方法是總是假所以它沒有找到字符串「水」。這是什麼原因?

回答

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"); 
+0

哦,是的.. ofcourse!謝謝。 – ziggy 2011-12-25 17:37:01