2012-12-07 72 views
0

我有一個字符串(來自HTTP頭),並希望將其分割成一個字典。NSString到NSDictionary

foo = \"bar\",baz=\"fooz\", beta= \"gamma\"

我CA不保證該字符串每次都相同。也許有空間,也許不是,有時雙引號會被轉義,有時候不會。

所以我用正則表達式在PHP中找到了解決方案。不幸的是,我無法將其轉換爲在iOS上運行。

preg_match_all('@('.$key.')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@', $input, $hits, PREG_SET_ORDER); 

foreach ($hits as $hit) { 
    $data[hit[1]] = $hit[3] ? $hit[3] : $hit[4]; 
} 

任何人都可以幫我把它轉換成Objective-C嗎?

回答

0

我遇到了一個有點RegEx大師的傢伙。他解釋了整個問題,並在RegEx中獲得了以下(工作!!!!)解決方案。

這給我字符串像foo="bar"

(?<=[,\\s])((realm|qop|nonce|opaque)=(?:([\"'])([^\2]+?)\2|([^\\s,]+)))

然後我用另一個正則表達式的key和value分裂它來創建一個字典。

相關問題