如何从以下字符串获取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}";
正则表达式中缺少什么?
最佳答案
从此更改您的正则表达式:
ricCode:([A-Za-z]+),$
对此:
ricCode:([A-Za-z.]+)(?=,)
您的原始正则表达式仅允许在 ricCode:
之后使用字母字符,但您的示例具有句点 .
字符。另外,您正在匹配 ,
字符,但这也会在您的匹配中包含逗号,您不希望这样 - 所以我添加了 positive lookahead对于逗号,因此它在那里查找但不匹配。最后,您的正则表达式末尾有一个 $
字符,它与字符串的末尾匹配,您不想在逗号之后立即查找字符串的末尾,所以我将其删除。
使用 regexr.com 有帮助来测试你的表达。
关于java - 正则表达式从字符串中查找特定模式字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43244552/