2014-04-28 168 views
0

我試圖提取'[:: ['和'] ::]'之間的值。我遇到的問題是在同一個字符串中有多個這樣的實例,它只是拾取第一個實例。任何幫助我的正則表達式?這裏是我的代碼:字符串之間的多個字符串之間的Java正則表達式

樣品輸入:line = "TEST [::[NAME]::] HERE IS SOMETHING [::[DATE]::] WITH SOME MORE [::[Last]::]";

Pattern p = Pattern.compile("\\[::\\[(.*?)\\]::\\]"); 
Matcher m = p.matcher(line); 
if (m.find()) { 
    System.out.println(m.group(1)); 
} 

回答

6

你的正則表達式是OK。你需要做的是循環比賽,Matcher可以匹配幾次!

while (m.find()) 
    System.out.println(m.group(1)); 

一個Matcher將從最後一場比賽結束再試一次(除非你使用\G但這是非常特別的)

+0

曾任職完美。真棒。謝謝! – LiverpoolFTW

相關問題