如何从以下字符串中获取ricCode:.ABC
。
我的匹配器是
Matcher matcher = Pattern.compile("ricCode:([A-Za-z]+),$").matcher(str);
String str = "{AMX:{ricCode:.ABC,indexDetailEnable:true,price:20,648.15,netChange:<spanclass="md-down">-41.09</span>,percentChange:<spanclass="md-down">-0.20%</span>,tradeDate:17/04/05,tradeTime:16:40,chartDate:17/04/05,chartTime:16:40}";
正则表达式缺少什么?
答案 0 :(得分:1)
改变你的正则表达式:
ricCode:([A-Za-z]+),$
到此:
ricCode:([A-Za-z.]+)(?=,)
您的原始正则表达式只允许ricCode:
后的字母字符,但您的示例中有一个句点.
字符。你也匹配了,
字符,但这也包括你的匹配中的逗号,你不想要这个 - 所以我为逗号添加了一个positive lookahead,所以它在那里查找它但不匹配它。最后你的正则表达式末尾的$
字符与字符串的结尾相匹配,你不想在逗号后立即查找字符串的结尾,所以我删除了它。
使用regexr.com来测试你的表达是有帮助的。