1文字ずつパースしてはいないので実行速度はあまり速くないと思います。
- (NSArray *)hashTagFromString:(NSString *)_string
{
NSMutableArray *result = [NSMutableArray array];
NSInteger length = [_string length];
NSRange validRange = {0, length};
while (YES) {
NSRange range = [_string rangeOfString:@"(^#[^ ]+ | #[^ ]+ | #[^ ]+$|^#[^ ]+$)" options:NSRegularExpressionSearch range:validRange];
if (range.location == NSNotFound) {
break;
}
NSString *hashTag = [_string substringWithRange:range];
NSString *trimedHashTag = [hashTag stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
[result addObject:trimedHashTag];
validRange.location = range.location + range.length;
validRange.length = length - validRange.location;
}
return result;
}
※twitterAPIにてinclude_entities=trueをオプションしていするとハッシュタグ一覧を取得することができます。
0 件のコメント :
コメントを投稿