从方括号java正则表达式中提取文本

时间:2013-05-29 07:40:15

标签: java regex

如何在CardType中提取文本:[.....]

CardType:[ CashRebate=[true], Platinum=[true], CoBrandCard=[true]{CoBrandType:Holt Renfrew}, ChargeCard=[true], ConsumerCard=[true], Product Type Code:null ]

最初我尝试使用以下代码

pattern p = Pattern.compile("CardType:\\[(.*?)\\]");
Matcher m = p.matcher(value);

输出为

CashRebate=[true
Platinum=[true

任何人都可以帮助我

谢谢

2 个答案:

答案 0 :(得分:1)

如果您希望输出为:

CashRebate=[true], Platinum=[true], CoBrandCard=[true]{CoBrandType:Holt Renfrew}, ChargeCard=[true], ConsumerCard=[true], Product Type Code:null

只是让正则表达式非懒惰:

pattern p = Pattern.compile("CardType:\\[(.*)\\]");
Matcher m = p.matcher(value);

这使得正则表达式匹配]的最后一个实例。

答案 1 :(得分:0)

试试这个:

pattern p = Pattern.compile("CardType:\\[\s(.*?)\s\\]");