大家都需要帮助在目标c中创建一个正则表达式,用于在双引号之间提取数据
“大家好”,“需要,帮忙”,“有”,“一个”,“正则表达”
所以我需要这个
您好,大家 需要帮助
与
一 正则表达式
在一个数组中。请为此建议一个解决方案。谢谢你
答案 0 :(得分:1)
对于一个简单的解决方案,您可以执行以下操作,使用"捕获括号"捕获引号之间的所有内容:
NSError *error;
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:@"\"(.*?)\"" options:0 error:&error];
NSAssert(regex, @"regex error: %@", error);
[regex enumerateMatchesInString:string options:0 range:NSMakeRange(0, [string length]) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
NSRange range = [result rangeAtIndex:1];
NSString *found = [string substringWithRange:range];
// do something with `found`
}];
如果你想处理使用反斜杠转义的引号的字符串值,你也可以使用负面的后置断言,例如:
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:@"\"(.*?)(?<!\\\\)\"" options:0 error:&error];
即使这并不完美(如果反斜杠逃脱角色本身就逃脱了怎么办),但也许这足以让你在没有迷失在老鼠的正则表达式中迷失。