我正在實現某種解析器,我需要定位和反序列化嵌入到其他半結構化數據的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一樣)。 –