【发布时间】:2013-07-04 23:20:28
【问题描述】:
我有一个正则表达式适用于 RegExr,但不适用于 Objective-C 中的 NSRegularExpression。问题在于 " 和 } 符号,这是我要搜索的字符串的一部分。 我的正则表达式:
(?<=\"Here\":\")(.*?)(?=\"})
使用这个表达式,Xcode 说“预期:”,并且在 } 前面加上 \,Xcode 也说它不识别 }。我让所有这些变体都可以与 RegExr 一起使用。
对于这样的字符串:
{"Something":"Something else", "Here" : "What I want is between these quotation marks"}
我在documentation 中查找,但在那里我没有找到关于这些符号的任何信息。
我的代码是:
NSRegularExpression *regEx = [NSRegularExpression regularExpressionWithPattern:@"(?<=\"Here\":\")(.*?)(?=\"})"options:NSRegularExpressionCaseInsensitive error:&error];
NSArray *matches = [regEx matchesInString:stringToSearch options:0 range:NSMakeRange(0, [stringToSearch length])];
[matches count] // Returns 0
那么我的错误在哪里?也许所有的表达式都是错误的,而 RegExr 是问题所在?
提前致谢。
【问题讨论】:
-
您似乎正在尝试解析哈希表或字典的字符串表示形式。你确定没有更适合的库吗?
-
是的,它看起来像 JSON,所以可以使用 NSJSONSerialization。
-
是的,它是 JSON。多亏了你们两个,我也要检查那个选项,因为它可能更有效。 ;)
标签: objective-c regex nsregularexpression