2012-07-30 115 views
1

分割字符串我想有人幫我糾正我的正則表達式來拆分此字符串:正則表達式來基於模式

{constraint.null.invalid}{0,1,2} 

基本上,我想裏面{}什麼,所以我的輸出必須:

  • constraint.null.invalid
  • 0,1,2

我的正則表達式,我已經嘗試過密切的是:

\{([\S]+)\} 

但我得到的值是:

constraint.null.invalid}{0,1,2 

我缺少什麼?

樣品的編號:

public static void main(String[] args) { 
    Pattern pattern = Pattern.compile("\\{([\\S]+)\\}", Pattern.MULTILINE); 
    String test = "{constraint.null.invalid}{0,1,2}"; 
    Matcher matcher = pattern.matcher(test); 
    while (matcher.find()) { 
     System.out.println(matcher.group(1)); 
    } 
} 

由於


PS:該字符串可以包含由1個或多個{}限制的值。

回答

2

有點不同的方法,在該圖案 「\ {([^ \ {\}] *)\}」

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class ReTest { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     String s = "bla bla {constraint.null.invalid} bla bla bla {0,1,2} bla bla"; 
     Pattern p = Pattern.compile("\\{([^\\{\\}]*)\\}"); 

     Matcher m = p.matcher(s); 

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