Blog Ranking

にほんブログ村 IT技術ブログへ

2011年2月17日木曜日

NSStringから正規表現でマッチした部分を抜き出す方法

今回、UITextFieldに入った"緯度,経度"という文字列を抜き出して、CLLocationに変換する必要があった。
しかしUITextFieldはユーザーが入力可能な要素なので、入っているのは"緯度,経度"じゃないかもしれないし、余分なものが含まれる可能性もある。

ということで、正規表現で軽くチェックしてマッチした部分を使うことにした。
そのためのメソッドはNSString:rangeOfString:options:で、optionsにはNSRegularExpressionSearchを渡すのがポイント。

検索文字列は@"3[0-9]{1}.[0-9]+,13[0-9]{1}.[0-9]+"という正規表現になっていて
"34.6937378, 135.5021651"のような文字列にマッチする。

rangeOfString:options:を使うとマッチした範囲がNSRangeで返されるので、
そのNSRangeをそのままNSString:substringWithRange:に渡して、マッチした部分を返してもらえる。

これは便利!


NSRange range = [textField.text rangeOfString:@"3[0-9]{1}.[0-9]+,13[0-9]{1}.[0-9]+" options:NSRegularExpressionSearch];

if (range.location != NSNotFound) {
NSString *locStr = [startTF.text substringWithRange:range];

//(.....以下省略.....)
}

0 件のコメント:

コメントを投稿