2012-07-30 117 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)); 
     } 
    } 
}