0

我有一个字符串(来自 HTTP 标头)并想将其拆分为字典。

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

我不能保证字符串每次都相同。也许有空格,也许没有,有时双引号被转义,有时没有。

所以我用正则表达式在 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?

4

1 回答 1

0

我遇到了一个有点像 RegEx 大师的人。他解释了整个事情,我在 RegEx 中得到了以下(工作!!!!)解决方案。

这给了我这样的字符串foo="bar"

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

然后我使用另一个正则表达式按键和值对其进行拆分以创建字典。

于 2012-12-12T12:29:50.053 回答