Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS上的正则表达式错误_Ios_Regex - Fatal编程技术网

iOS上的正则表达式错误

iOS上的正则表达式错误,ios,regex,Ios,Regex,我遇到了在iOS上匹配正则表达式的问题,试图匹配avatar_URL:{…}并崩溃。正则表达式匹配成功,所以我认为这可能是iOS的一个怪癖 代码: 错误: The operation couldn’t be completed. (Cocoa error 2048.) { NSInvalidValue = "\"avatar_urls\":{[^}]+}"; } 示例字符串: {"user":{"id":1001090,"login":"Julesndiamonds","path":

我遇到了在iOS上匹配正则表达式的问题,试图匹配avatar_URL:{…}并崩溃。正则表达式匹配成功,所以我认为这可能是iOS的一个怪癖

代码:

错误:

The operation couldn’t be completed. (Cocoa error 2048.) 
{
    NSInvalidValue = "\"avatar_urls\":{[^}]+}";
}
示例字符串:

{"user":{"id":1001090,"login":"Julesndiamonds","path":"/julesndiamonds","restful_url":"http://8tracks.com/users/1001090","avatar_urls":{"sq56":"http://imgix.8tracks.com/avatars/001/001/090/76935.original.png?fm=jpg&q=65&sharp=15&vib=10&w=56&h=56&fit=crop","sq72":"http://imgix.8tracks.com/avatars/001/001/090/76935.original.png?fm=jpg&q=65&sharp=15&vib=10&w=72&h=72&fit=crop","sq100":"http://imgix.8tracks.com/avatars/001/001/090/76935.original.png?fm=jpg&q=65&sharp=15&vib=10&w=100&h=100&fit=crop","max200":"http://imgix.8tracks.com/avatars/001/001/090/76935.original.png?fm=jpg&q=65&sharp=15&vib=10&w=200&h=200&fit=max","max250w":"http://imgix.8tracks.com/avatars/001/001/090/76935.original.png?fm=jpg&q=65&sharp=15&vib=10&w=250&h=250&fit=max","original":"http://imgix.8tracks.com/avatars/001/001/090/76935.original.png?fm=jpg&q=65&sharp=15&vib=10&"},"location":"Potrero Hill, San Francisco, CA, US","bio_html":"<p>If only I could pay my bills in smiles. I love rocking out to mix tapes while I work as the 8tracks Community Manager. </p>\n\n<p>Love thrifting, eating all kinds of food, and cuddling up with a good book and a glass of wine. </p>","website":"http://www.lomatika.com","designation":"staff","public_mixes_count":5,"follows_count":127,"followers_count":74,"followed_by_current_user":false,"presets":["chill+rap","ambient+electronic","chillstep+sex","electrofunk","hip hop+workout","r&b+soul","brazil+summer","country+love"],"preset_smart_ids":["tags:chill+rap","tags:ambient+electronic","tags:chillstep+sex","tags:electrofunk","tags:hip_hop+workout","tags:r&b+soul","tags:brazil+summer","tags:country+love"],"ios_subscribed":false,"connected_facebook_user":{"id":1050450021,"uid":1050450021,"post_listens":true,"post_favs":true,"post_likes":true,"post_mixes":true,"granted_publish_actions":true,"explicitly_set_permissions":true},"tracking_settings":{"mixpanel_enabled":null,"mixpanel_super_properties":null,"mixpanel_identity":null},"subscribed":false,"web_safe_browse":false,"mobile_safe_browse":false,"user_token":"1001090;9f6d99bf40c22b646410a66a723b4af6860eab2c"},"status":"200 OK","errors":null,"notices":null,"logged_in":true,"api_version":2.1}

弯曲的大括号很特别:

逃离他们

@"\"avatar_urls\":\\{[^}]+\\}"

或者,更好的方法是使用合适的JSON解析器。

小括号很特别:

逃离他们

@"\"avatar_urls\":\\{[^}]+\\}"

或者,更好的方法是使用合适的JSON解析器。

如果将此响应检索到NSData中,也可以将其解析为:

NSError *error = nil;
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data
                                                           options:0
                                                             error:&error];

if (!error)
{
    NSDictionary *user = dictionary[@"user"];
    NSDictionary *avatarUrls = user[@"avatar_urls"];
    NSLog(@"%@", avatarUrls);
}
else
{
    NSLog(@"%s: error = %@", __FUNCTION__, error);
}

如果将此响应检索到NSData中,还可以将其解析为:

NSError *error = nil;
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data
                                                           options:0
                                                             error:&error];

if (!error)
{
    NSDictionary *user = dictionary[@"user"];
    NSDictionary *avatarUrls = user[@"avatar_urls"];
    NSLog(@"%@", avatarUrls);
}
else
{
    NSLog(@"%s: error = %@", __FUNCTION__, error);
}

你不应该用解析这个吗?你不应该用解析这个吗?在卷发前面应该是一个双反斜杠。在卷发前面应该是一个双反斜杠。