正規表現から始めなくてもすむので助かる。ありがとうObjective-C。
文字列からURLや電話番号を抽出する
クラス
- NSDataDetector
メソッド
- dataDetectorWithTypes:(NSTextCheckingTypes)checkingTypes
-
checkingTypesで指定した要素を文字列から抽出する。
よく使うと思われるcheckingTypesは以下の通り。
- NSTextCheckingTypeDate 日時
- NSTextCheckingTypeLink URLリンク
- NSTextCheckingTypePhoneNumber 電話番号
サンプルコード
[code]
NSString *str = @”このエントリのURLは http://www.sirochro.com/note/objc-nsdatadetector-using/ です。電話番号 090-1234-5678″;
NSDataDetector *dataDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink|
NSTextCheckingTypePhoneNumber
error:nil];
NSArray *resultArray = [dataDetector matchesInString:str
options:0
range:NSMakeRange(0,[str length])];
for (NSTextCheckingResult *result in resultArray)
{
if ([result resultType] == NSTextCheckingTypeLink)
{
NSURL *url = [result URL];
NSLog(@”url:%@”,[url description]);
} else if ([result resultType] == NSTextCheckingTypePhoneNumber) {
NSString *phoneNumber = [result phoneNumber];
NSLog(@”tel:%@”,phoneNumber);
}
}
[/code]