0

我有NSString几个这样的字符串,465544664646它们之间是变化的:

data-context-item-title="465544664646"

465544664646我如何将字符串解析为数组?

编辑

NSRegularExpression* myRegex = [[NSRegularExpression alloc] initWithPattern:@"(?i)(data-context-item-title=\")(.+?)(\")" options:0 error:nil];
[myRegex enumerateMatchesInString:responseString options:0 range:NSMakeRange(0, [responseString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop) {
    NSRange range = [match rangeAtIndex:1];
    NSString *string =[responseString substringWithRange:range];
    NSLog(string);
}];
4

3 回答 3

1

试试这个:

NSString *yourString=@"data-context-item-title=\"465544664646\" data-context-item-title=\"1212121212\"";

NSMutableArray *substrings = [NSMutableArray new];
NSScanner *scanner = [NSScanner scannerWithString:yourString];
[scanner scanUpToString:@"\"" intoString:nil];
while(![scanner isAtEnd]) {
    NSString *tempString;
    [scanner scanString:@"\"" intoString:nil];
    if([scanner scanUpToString:@" " intoString:&tempString]) {
        [substrings addObject:tempString];
    }
    [scanner scanUpToString:@"\"" intoString:nil];
}

//NSLog(@"->%@",substrings); //substrings contains all numbers as string.


for (NSString *str in substrings) {
    NSLog(@"->%ld",[str integerValue]); //converted each number to integer value, if you want to store as NSNumber now you can store each of them in array
}
于 2013-02-26T10:24:55.097 回答
0

像这样的东西?

    -(NSString *)stringFromOriginalString:(NSString *)origin betweenStartString:    (NSString*)start andEndString:(NSString*)end {
    NSRange startRange = [origin rangeOfString:start];
    if (startRange.location != NSNotFound) {
        NSRange targetRange;
        targetRange.location = startRange.location + startRange.length;
        targetRange.length = [origin length] - targetRange.location;
        NSRange endRange = [origin rangeOfString:end options:0 range:targetRange];
        if (endRange.location != NSNotFound) {
            targetRange.length = endRange.location - targetRange.location;
            return [origin substringWithRange:targetRange];
        }
    }
    return nil;
}
于 2013-02-26T10:25:19.093 回答
0

您可以使用

- (NSArray *)componentsSeparatedByString:(NSString *)separator

方法如

NSArray *components = [@"data-context-item-title="465544664646" componentsSeparatedByString:@"\""];

现在你应该在 2.index 处得到字符串

[components objectAtIndex:1]

现在您可以使用NSString 到 NSArray的方法从该字符串创建数组

于 2013-02-26T10:51:17.113 回答