我需要在長JSON字符串中的特定節點內提取一個節點值。正則表達式匹配json節點
即人節點描述節點:
「人 」:{「 時代」: 「10」, 「描述 」:「 例如」,工作:{ 「稱號」:」銷售」,‘工資’:‘$ 3000’},‘性’:‘男’}
作爲使用JSON庫反序列化浪費了太多的時間很長的JSON字符串,我用Google搜索,發現了一個正則表達式匹配一個JSON節點值並且大部分時間都工作得快(幾毫秒)
Regex regex = new Regex("\"person\":{(?:[^{}]|(?<open>{)|(?<-open>}))*\"description\":\"(.*?)\"(?:.*?)(?(open)(?!))}");
工程進展緩慢(用一整秒)時,重複的節點名稱在一些內部節點存在匹配發生未知原因後:
「人」:{「時代」:「10 「,」description「:」example「,job:{」title「:」sales「,」salary「:」$ 3000「,」description「:」example「},」sex「:」male「}
我想提高這個正則表達式的效率,以便它只會檢查該人的最外層內容節點(粗體):
「人」:{「時代」: 「10」, 「說明」: 「例如」,工作:{ 「稱號」: 「銷售」, 「工資」:」 $ 3000" , 「說明」: 「例如」},「性」: 「男」}
我是新來的正則表達式,此正則表達式可能不適合我的情況。
有什麼想法?
它應該更容易(可能更快)只解析JSON和拉你想要的值。參考。到[System.Web.Helpers.Json](http://msdn.microsoft.com/en-us/library/system.web.helpers.json%28v=vs.111%29.aspx) – wdosanjos 2014-10-03 12:22:16
什麼時候desciption包含引號像「」description「:」example \「blah \」「' – Toto 2014-10-03 12:22:18
你想提取什麼? – 2014-10-03 12:24:49