因为我无法获得将解析后的字符串
分开的逻辑tooltipHtml:“(26.3 km / 29分钟)”
我想删除除“ 26.3 km ”之外的其他部分& ' 29分钟'。有时候不是“分钟”而是“ hrs- mins ”
答案 0 :(得分:2)
使用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];
或者你可以使用正则表达式方法,但是我对它们并不熟悉,所以我不能告诉你如何做到这一点,你必须环顾四周。
答案 1 :(得分:0)
如果你想使用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 km / 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分钟
答案 2 :(得分:-1)
NSString *newString =[@"tooltipHtml:\" (26.3 km / 29 mins)\"" stringByReplacingOccurrencesOfString:@\"tooltipHtml:\""
withString:@""];
newString =[newString stringByReplacingOccurrencesOfString:@"("
withString:@""];
等等......
(我可能有一些语法拼写错误,但你明白了,请使用stringByReplacingOccurrencesOfString方法)