我说的是NSString
乱七八糟
dsadasdasd"my_id": "qwerr"dcdscsdcds"my_id": "oytuj"adasddasddsddaS"my_id": "sjghjgjg"ddsfsdfsdf
我如何找到之间的字符串的每个实例
"my_id": "
然后下一个
"
所以在这里,我希望结果为的
NSArray
:qwerr
oytuj
sjghjgjg
我在寻找提示,正则表达式或任何其他解决方案都很好。我已经尝试了多种使用
NSRange
和substringWithRange
组合的方法,但无法使其起作用:(帮助将不胜感激!谢谢
最佳答案
我忽略了收盘报价的要求。好吧,在这种情况下,带有或不带有正则表达式的代码的长度将相似。
这是一个正则表达式建议,它基本上提取"my_id": "
之后到下一个"
或字符串结尾的所有子字符串:
NSError *error = nil;
NSString *pattern = @"\"my_id\": \"([^\"]+)";
NSString *string = @"dsadasdasd\"my_id\": \"qwerr\"dcdscsdcds\"my_id\": \"oytuj\"adasddasddsddaS\"my_id\": \"sjghjgjg\"ddsfsdfsdf";
NSRange range = NSMakeRange(0, string.length);
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
NSArray *matches = [regex matchesInString:string options:0 range:range];
for (NSTextCheckingResult* match in matches) {
NSRange group1 = [match rangeAtIndex:1];
NSLog(@"group1: %@", [string substringWithRange:group1]);
}
参见IDEONE demo
关于ios - iOS如何在一个巨大的字符串的2个字符串之间找到多个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33364658/