我输入字符串为
String str = "IN Param - {Parameter|String}{Parameter|String} Out Param - {Parameter Label|String}{Parameter Label2|String}";
我应该得到
{参数|字符串} {参数|字符串}
来自In Param和
来自Out Param的{Parameter Label | String} {Parameter Label2 | String}
。
再次在In Param中,我应该能够获得参数和字符串。如何在正则表达式中匹配Java?
答案 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
}