我正在实现某种解析器,我需要定位和反序列化嵌入到其他半结构化数据的json对象。我用正则表达式:正则表达式匹配嵌套的json对象
\\{\\s*title.*?\\}
定位对象
{title:'Title'}
但因为表达式匹配只有第一发现闭花括号它不与嵌套对象。对于
{title:'Title',{data:'Data'}}
它匹配
{title:'Title',{data:'Data'}
这样的字符串成为反序列化无效。 我知道有一个贪婪的企业会考虑到,但我不熟悉正则表达式。你能帮我扩展表达式来消耗所有可用的大括号。
更新:
需要明确的是,这是一个试图从具有嵌入的JSON像HTML + JS半结构化数据提取JSON数据。我使用GSon JAVA库来实际解析提取的JSON。
小心“OMG,不要使用正则表达式”! – SmokeyPHP
..但一切都很严肃 - 为什么?什么是数据,你需要做什么 – SmokeyPHP
@ViktorStolbin有预制的JSON解析库。另外,由于JSON不是常规语言,因此无法用正则表达式正确解析(就像HTML一样)。 –