1

我有输入字符串

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

我应该能够得到

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

来自 In Param 和

{参数标签|字符串}{参数标签2|字符串}

从输出参数。

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

4

2 回答 2

3

可以通过组

所以正则表达式是:

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

Group1捕获参数

Group2捕获字符串

在这个正则表达式{(.*?)|中,匹配 0 到 n 个以开头{和结尾的字符,|并将结果存储在 group1 中,排除{|..这与发生类似,|(.*?)}但它将结果存储在 group2..

在这里试试

于 2012-10-24T07:32:33.523 回答
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
}
于 2012-10-24T07:33:37.827 回答