正则表达式以匹配嵌套的json对象

我正在实现某种解析器,我需要定位并反序列化 json对象。我用了regexp:

\\{\\s*title.*?\\}

定位物体

{title:'Title'}

但不适用于嵌套对象,因为表达式仅匹配第一个找到的右花括号。对于

{title:'Title',{data:'Data'}}

它匹配

{title:'Title',{data:'Data'}

因此字符串对于反序列化变得无效。我知道有一个贪婪的业务正在考虑中,但是我对正则表达式并不熟悉。您能否帮助我扩展表达式以使用所有可用的大括号。

明确地说,这是尝试从具有嵌入式JSON的半结构化数据(例如HTML + JS)中提取JSON数据。我正在使用GSon JAVA

lib来实际解析提取的JSON。

回答:

感谢@Sanjay T.

Sharma向我指出了“大括号匹配”,因为我最终对贪婪的表达有了一些理解,也感谢其他人最初说了我不应该做的事情。幸运的是,可以使用贪婪的表达式变体

\\{\s*title.*\\}

因为在方括号之间没有非JSON数据。

以上是 正则表达式以匹配嵌套的json对象 的全部内容, 来源链接: utcz.com/qa/419352.html

回到顶部