2012-12-07 40 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分裂它来创建一个字典。

相关问题