2013-03-30 73 views
0

我實際上是新的Java,我很高興正則表達式作品,我發現^^但現在我需要知道,如何獲得超過1字符串和最好的將是如果全部都在數組中。其實我這樣做:查找超過1個字符串與正則表達式

Pattern p = Pattern.compile("name~(.*?)@"); 
Matcher m = p.matcher(response); 

while (m.find()) { 
    System.out.println("Found: " + m.group()); 
} 

任何人都可以幫忙嗎?

+3

你有什麼問題? –

+0

正如我寫的,我不需要一場比賽,我需要所有的比賽 – Phil

+0

你的代碼給你所有的比賽,不是嗎? – Howard

回答

1

你只需把你的結果變成List

final List<String> results = new LinkedList<>(); 
while (m.find()) { 
    results.add(m.group()); 
} 

然後,您可以訪問在List直接的結果 - 如果你需要隨機訪問使用ArrayList而不是LinkedList。如果你需要一個數組,然後簡單地將其轉換

final String[] resultArr = results.toArray(new String[results.size()]); 

如果你在一個String匹配多個項目,可以幫助正則表達式引擎出了一點通過匹配[^@]並使其佔有,而不是使用一個不情願的.*

Pattern p = Pattern.compile("name~([^@]++)@"); 
相關問題