2012-12-07 4 views
0

문자열 (HTTP 헤더에서)이 있고 사전으로 분할하고 싶습니다.NSString to 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,]+)))

.