System.out.println(matcher.group(1));
System.out.println(matcher.group());
我想知道上面兩個代碼有什麼區別。我得到不同的輸出。有人可以詳細說明這一點嗎?以下兩者有什麼區別?
感謝
System.out.println(matcher.group(1));
System.out.println(matcher.group());
我想知道上面兩個代碼有什麼區別。我得到不同的輸出。有人可以詳細說明這一點嗎?以下兩者有什麼區別?
感謝
到group()
調用給你匹配整個字符串,而group(1)
給你第一個括號中的「捕捉」組(或者更一般地,group(n)
會給你第n個捕獲組,計數左/左括號,從1開始)。
因此,舉例來說,如果你有一個輸入字符串是這樣的:
The quick brown fox
你對下面的正則表達式(不帶引號)匹配:
"The (\\w+)"
然後group()
會給你「快速」和group(1)
會給你「快速」。
有關Java中所有這些正則表達式工作原理的更多詳細信息,請參閱Java教程java.util.regex.Matcher
。
這個正則表達式缺少一些東西,你是不是指「(\\ w +)'」? (從技術上說,它不會匹配 - 'matches()',它會被發現 - 'find()') – 2010-03-11 10:14:43
已更新以添加反斜槓,並且您正確地說'matches()'與'find()' 。 – 2010-03-11 17:19:53
該API doc是一個非常好的地方先看看。
對於簡單的示例,我得到了group()和group(1)完全相同的值:您能提供一個特定的表達式和輸入字符串嗎? – 2010-03-10 21:29:26