2014-06-15 74 views
-1

我正在使用正則表達式來獲取我的字符串中的確切單詞。我不知道爲什麼find()方法正在失去它的價值。在調試模式下,我可以看到該值,並且該值爲true,但不會轉到while找到java匹配器的方法失去了它的值

public static void main(String[] args) { 

    Pattern pattern = Pattern.compile("\\bAccountability", Pattern.CASE_INSENSITIVE); 
    Matcher matcher = pattern.matcher("  Accountability: Execute"); 
    while (matcher.find()) { 
    System.out.println("it work!!!!!!!!!"); 
    } 
} 

請誰能告訴我我的問題是什麼?謝謝。

+1

我會盡我的電腦上,並在'而(matcher.find())''回報TRUE'。請給我一些關於你的問題的解釋嗎? –

+0

它在這裏工作 - http://ideone.com/Q9rLxq(如果'find'至少有一次沒有返回true,那麼*不匹配) – user2864740

+0

如果它沒有進入while循環,則問題必然存在此代碼片段之外。原樣剪切和粘貼的相同代碼將正確執行,並且您將進入while循環一次。 – Mer

回答

0

在您致電matcher.find();後,您必須致電matcher.group();返回上一場比賽的結果。

例如

public static void main(String[] args) { 

Pattern pattern = Pattern.compile("\\bAccountability", Pattern.CASE_INSENSITIVE); 
Matcher matcher = pattern.matcher("  Accountability: Execute"); 
while (matcher.find()) { 
    System.out.println(matcher.group()); 
} 
相關問題