正则表达式以匹配嵌套的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