由于我无法获得分离解析字符串的逻辑
tooltipHtml:" (26.3 公里 / 29 分钟)"
我想删除除“ 26.3 km ”和“ 29 mins ”之外的其他部分。有时可以用 ' hrs-mins ' 代替 ' mins '
由于我无法获得分离解析字符串的逻辑
tooltipHtml:" (26.3 公里 / 29 分钟)"
我想删除除“ 26.3 km ”和“ 29 mins ”之外的其他部分。有时可以用 ' hrs-mins ' 代替 ' mins '
使用 NSString componentsSeparatedByString: 方法将它们沿 "(" 、 "/" 和 ")" 分开
NSArray *components = [myString componentsSeparatedByString: @"("];
NSArray *componentsTwo = [[components objectAtIndex:1] componentsSeparatedByString: @"/"];
NSString *firstString = [componentsTwo objectAtIndex:0];
NSArray *componentsThree = [componentsTwo objectAtIndex:1] componentsSeparatedByString: @")"];
NSString *secondString = [componentsThree objectAtIndex:0];
或者你可以使用 Regex 方法,但是我对它们不是很熟悉,所以我不能告诉你具体怎么做,你必须看看周围。
如果你想改用 RegEx,你可以这样做:
NSRegularExpression *regEx = [[NSRegularExpression alloc] initWithPattern:@"(?<=[(])[^)]*" options:nil error:nil];
NSArray *matches = [regEx matchesInString:str options:Nil range:NSMakeRange(0, str.length)];
for (NSTextCheckingResult *r in matches) {
NSLog(@"%@", [str substringWithRange:r.range]);
}
输出:26.3 公里/29 分钟
或者,如果您希望将它们分开进一步使用:
NSRegularExpression *regEx = [[NSRegularExpression alloc] initWithPattern:@"(?<=[(|/])[^)|/]*" options:nil error:nil];
NSArray *matches = [regEx matchesInString:str options:Nil range:NSMakeRange(0, str.length)];
for (NSTextCheckingResult *r in matches) {
NSLog(@"%@", [str substringWithRange:r.range]);
}
输出:26.3公里29分钟
NSString *newString =[@"tooltipHtml:\" (26.3 km / 29 mins)\"" stringByReplacingOccurrencesOfString:@\"tooltipHtml:\""
withString:@""];
newString =[newString stringByReplacingOccurrencesOfString:@"("
withString:@""];
等等……
(我可能有一些语法错误,但你明白了,使用 stringByReplacingOccurrencesOfString 方法)