问题 - 正则表达式捕获超集

时间:2016-01-04 07:14:53

标签: regex

我尝试从下面的文本中提取ValueValueRef对。

问题 - 我的正则表达式正在捕获前面的值中的文本,但我希望它紧紧束缚。我应该忽略使用负面看头吗?

正则表达式和示例文本在这里 - https://regex101.com/r/dT4wD3/1

:{"Value":"Chairman of the Presidium of the Revolutionary Council","ValueType":1}}],"ValueReferences":[{"Value":"Chairman","ValueRef":"http://en.wikipedia.org/wiki/President_of_Afghanistan"}

我需要的是2对 -

  1. "Value":"Chairman","ValueRef":"http://en.wikipedia.org/wiki/President_of_Afghanistan"

  2. "Value":"Revolutionary ouncil","ValueRef":"http://en.wikipedia.org/wiki/Revolutionary_Council_(Afghanistan)"

2 个答案:

答案 0 :(得分:1)

使用.*"Value":"([^"]*)","ValueRef":"([^"]*)".*$1$2将分别为您提供 ValueRef 。但是在JSON字符转义和其他结构性东西的情况下,这不是一种非常安全的方法。

正如其他人已经建议的那样 - 尝试将 Gson 库用于Java(或适合您的编程环境),而不是像这样很好地解析这些东西如果可能的话,我会很健壮。

答案 1 :(得分:1)

{"Value":"([^"]*)","ValueRef":"([^"]*)"}

使用基于否定的正则表达式。参见演示。

https://regex101.com/r/dT4wD3/2