既然不能得到邏輯分離分析的字符串我怎樣才能分開這個NSString?
tooltipHtml: 「(26.3公里/ 29分鐘)」
,我想刪除其他部分,除了「26.3公里 '&'29分鐘'。有時,而不是 '分鐘' 可以有 'hrs-分鐘'
既然不能得到邏輯分離分析的字符串我怎樣才能分開這個NSString?
tooltipHtml: 「(26.3公里/ 29分鐘)」
,我想刪除其他部分,除了「26.3公里 '&'29分鐘'。有時,而不是 '分鐘' 可以有 'hrs-分鐘'
使用的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方法,但是我對它們並不十分熟悉,所以我不能告訴你究竟該如何去做,你將不得不四處看看。
雅。問題被解決thanx .. –
這是一個非常低效的解決方案。最好是獲得「(」和「)」的範圍,並簡單地獲得這些範圍之間的子串。 – rmaddy
是的,但如果有不同的東西(例如:T而不是t,它不起作用)。 –
NSString *newString =[@"tooltipHtml:\" (26.3 km/29 mins)\"" stringByReplacingOccurrencesOfString:@\"tooltipHtml:\""
withString:@""];
newString =[newString stringByReplacingOccurrencesOfString:@"("
withString:@""];
,...等
(我可能有一些語法,拼寫錯誤,但你明白了吧,使用stringByReplacingOccurrencesOfString法)
如果你想使用正則表達式,而不是你可以這樣做:
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分鐘
屏幕抓取,是嗎? – trojanfoe
你想要圓括號之間的部分嗎? – rmaddy
是的。只有() –