2012-08-11 14 views
0

可能重複:Print regex matches in java打印出匹配我在java中正則表達式的字符串?

我使用Matcher類在Java中,以配合特定的正則表達式,我轉換成使用Pattern類的圖案的字符串。我知道我的正則表達式的工作原理,因爲當我做Matcher.find()時,我得到了真正的值,我應該。但我想打印出產生這些真值的蜇傷(意味着打印出與我的正則表達式匹配的字符串),並且我沒有在匹配器類中看到實現該方法的方法。如果有人遇到過這樣的問題,請告訴我。我很抱歉,因爲這個問題相當簡陋,但我對於正則表達式相當陌生,因此我仍然在尋找正則表達式的世界。

+0

看到這個問題,你會發現一些很好的解決方案在這裏... http://stackoverflow.com/questions/836704/print-regex-matches-in-java – 2012-08-11 00:33:55

回答

3

假設m是您的匹配:

m.group()將返回匹配的字符串。

[編輯]關於匹配組

還增加了信息,如果您正則表達式有括號內的部分,m.group(n)將返回第n組匹配括號內的字符串;

Pattern p = Pattern.compile("mary (.*) bob"); 
Matcher m = p.matcher("since that day mary loves bob"); 

m.group()返回「瑪麗愛bob」。
m.group(1)返回「愛」。

+0

謝謝我只是想通了。我想,group()方法的名字有點讓我失望。似乎並不直觀我不知道他們爲什麼沒有更具描述性的名字。 – anonuser0428 2012-08-11 00:34:45

+0

我編輯了我的答案,解釋了「組」的真實含義。一旦你熟悉了正則表達式的小組,它確實是有道理的(我確實承認在使用正則表達式之前多年我才明白這一點)。 – WhyNotHugo 2012-08-11 00:36:09

+0

好吧,這是有道理的。謝謝你的幫助。 – anonuser0428 2012-08-11 01:32:17