Java正则表达式提取没有引号的键值

时间:2016-08-11 20:47:16

标签: java regex

我有一个键值列表: -

{
  "xxx" : "1234",
  "yyy" : "1234",
  "zzz" : "1234"
}

我有正则表达式: -

String pattern = ".*zzz\\s*:\\s*(.*)[\n\r]";

当密钥为'zzz'时,仅在匹配的情况下提取值。

但是由于引号我没有得到匹配......我怎么能交替我的模式来获得比赛?另外,我也不想在我的价值中得到报价。

1 个答案:

答案 0 :(得分:1)

由于zzz之后缺少双引号,您无法获得匹配。

String pattern = ".*zzz\"\\s*:\\s*(.*)[\n\r]";
                        ^--- Here

顺便说一句,您可以使用:

String pattern = ".*zzz\".*?\"(.*?)\"";

然后,您必须通过匹配器match(1)抓取捕获组中的内容。

<强> Regex demo

<强> IDE One demo