在Java中的模式匹配方面需要帮助

时间:2012-10-24 07:20:37

标签: java regex

我输入字符串为

String str = "IN Param - {Parameter|String}{Parameter|String}  Out Param - {Parameter   Label|String}{Parameter Label2|String}";

我应该得到

  

{参数|字符串} {参数|字符串}

来自In Param和

  

{Parameter Label | String} {Parameter Label2 | String}

来自Out Param的

再次在In Param中,我应该能够获得参数和字符串。如何在正则表达式中匹配Java?

2 个答案:

答案 0 :(得分:3)

可以通过群组

所以正则表达式是:

"\\{(.*?)\\|(.*?)\\}"

Group1 捕获参数

Group2 捕获字符串

在此正则表达式中{(.*?)|表示匹配0到n个字符,以{开头并以|结尾,并将结果存储在group1中,不包括{和{{1}这与|类似,但它将结果存储在group2 ..

试试here

答案 1 :(得分:0)

Pattern p = Pattern.compile("\\{([^|]+)\\|([^}]+)\\}");
Matcher m = p.matcher(str);
while (m.find()) {
    String label = m.group(1);
    String value = m.group(2);
    // do what you need with them
}