2012年2月24日金曜日

Objective-CでTweetからハッシュタグを抽出する

「直近のtweetからハッシュタグを10件抽出して候補とする」って機能を実装する為に、tweetの文字列からハッシュタグの一覧を抽出するプログラムを作りますた。

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 件のコメント :

コメントを投稿