Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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:提取目标C中NSString的子字符串_Ios_Objective C_Nsstring - Fatal编程技术网

iOS:提取目标C中NSString的子字符串

iOS:提取目标C中NSString的子字符串,ios,objective-c,nsstring,Ios,Objective C,Nsstring,我有一个NSString作为: 但后来我发现12321的长度是可变的 我找不到像java的indexOf这样的方法来查找'>'和',我通常不主张使用正则表达式来解析HTML内容,但它似乎是一个正则表达式匹配>\d+,正如@HaneTV所说的,您可以使用NSString方法rangeOfString来搜索子字符串。鉴于字符>和可能对您有所帮助,我刚刚测试了: NSString *_string = @"<a href='javascript:void(null)' onclick='hand

我有一个NSString作为:

但后来我发现12321的长度是可变的


我找不到像java的indexOf这样的方法来查找'>'和',我通常不主张使用正则表达式来解析HTML内容,但它似乎是一个正则表达式匹配>\d+,正如@HaneTV所说的,您可以使用NSString方法rangeOfString来搜索子字符串。鉴于字符>和可能对您有所帮助,我刚刚测试了:

NSString *_string = @"<a href='javascript:void(null)' onclick='handleCommandForAnchor(this, 10);return false;'>12321</a>";
NSError *_error;
NSRegularExpression *_regExp = [NSRegularExpression regularExpressionWithPattern:@">(.*)<" options:NSRegularExpressionCaseInsensitive error:&_error];
NSArray *_matchesInString = [_regExp matchesInString:_string options:NSMatchingReportCompletion range:NSMakeRange(0, _string.length)];
[_matchesInString enumerateObjectsUsingBlock:^(NSTextCheckingResult * result, NSUInteger idx, BOOL *stop) {
    for (int i = 0; i < result.numberOfRanges; i++) {
        NSString *_match = [_string substringWithRange:[result rangeAtIndex:i]];
        NSLog(@"%@", _match);
    }
}];

是的,您可以使用rangeOfString:您可以使用rangeOfString,但最好使用NSScanner可能是一个与正则表达式相关的问题这似乎会有所帮助。如何在NSString中搜索正则表达式?刚刚添加了一个未经测试的示例
        NSString *shipNumHtml=[mValues objectAtIndex:1];
        NSInteger htmlLen=[shipNumHtml length];

        NSString *shipNum=[[shipNumHtml substringFromIndex:htmlLen-12]substringToIndex:8];
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@">(\\d+)<"
                                                                       options:0
                                                                         error:&error];
// Handle error != nil

NSTextCheckingResult *match = [regex firstMatchInString:string
                                                options:0
                                                  range:NSMakeRange(0, [string length])];
if (match) {
    NSRange matchRange = [match rangeAtIndex:1];
    NSString *number = [string substringWithRange:matchRange]
    NSLog(@"Number: %@", number);
}
NSString *_string = @"<a href='javascript:void(null)' onclick='handleCommandForAnchor(this, 10);return false;'>12321</a>";
NSError *_error;
NSRegularExpression *_regExp = [NSRegularExpression regularExpressionWithPattern:@">(.*)<" options:NSRegularExpressionCaseInsensitive error:&_error];
NSArray *_matchesInString = [_regExp matchesInString:_string options:NSMatchingReportCompletion range:NSMakeRange(0, _string.length)];
[_matchesInString enumerateObjectsUsingBlock:^(NSTextCheckingResult * result, NSUInteger idx, BOOL *stop) {
    for (int i = 0; i < result.numberOfRanges; i++) {
        NSString *_match = [_string substringWithRange:[result rangeAtIndex:i]];
        NSLog(@"%@", _match);
    }
}];