2015-10-09 83 views
1
String name="[COLOR dxvx]yyyy[/COLOR]" 
String name="[COLOR dvvx]tttt[/COLOR]" 

我需要得到的字符串YYYY是[COLOR dxvx]和之間創建正則表達式匹配[/ COLOR]怎麼能做到這一點使用正則表達式中的Java如何4個分隔符

中指出[COLOR dxvx]旁邊的顏色字也在變化

+0

你到目前爲止做了什麼? – MBaas

回答

0

您也可以嘗試直接匹配:

(?<=])[^]]+(?=\\[/COLOR) 

DEMO

實現在Java中:

public static void main(String[] args){ 
    String[] strings = {"String name=\"[COLOR dxvx]yyyy[/COLOR]\"", 
      "String name=\"[COLOR dvvx]tttt[/COLOR]\""}; 

    for(String string : strings) { 
     ArrayList<Integer> numbers = new ArrayList<Integer>(); 
     Matcher matcher = Pattern.compile("(?<=])[^]]+(?=\\[/COLOR)").matcher(string); 
     if(matcher.find()){ 
      System.out.println(matcher.group()); 
     } 

    } 
} 

與輸出:

yyyy 
tttt 
3

使用捕獲組。

Matcher m = Pattern.compile("\\[COLOR\\s+dxvx\\](.*?)\\[/COLOR\\]").matcher(s); 
while(m.find()) { 
    System.out.println(m.group(1)); 
} 
+0

thanx爲您的答覆。在[COLOR dxvx]旁邊,「COLOR」世界旁邊沒有定義。那也正在改變.. –

+0

嘗試'「\\ [COLOR \\ s + \\ w + \\](。*?)\\ [/ COLOR \\]」' –