Objective-Cで使いたい正規表現ライブラリ RegexKitLite.hについて調べてみたメモ
公式ページ http://regexkit.sourceforge.net/RegexKitLite/
やること
NSRangeとかイケてないiOS標準の正規表現ではなく、LL言語を使っている人なら直感的な正規表現機能を提供してくれる。
仕組みとしては、NSStringをカテゴリ拡張して正規表現機能を追加してくれている。
使い方 ヘッダを取り込むだけで、NSStringが拡張される。
#import "RegexKitLite.h"
単純に文字列マッチを見たいなら、これでおK
こんな感じで正規表現を宣言しておき、
NSString *regEx = @"{3}-[0-9]{3}-[0-9]{4}";
文字列と文字列でマッチさせられる。
NSString *match = [textView.text stringByMatching:regEx];
if ([match isEqual:@""] == NO) {
NSLog(@"Phone number is %@", match);
} else {
NSLog(@"Not found.");
}
NSRangeとかわかりくにいので、こっちの方がわかりやすいですね!
単純にリプレースさせたければ、
NSString * replacedString = [searchString stringByReplacingOccurrencesOfRegex:regexString withString:replaceWithString];
文字列配列で返してくれたり
NSArray * matchArray = [searchString componentsMatchedByRegex:regexString];
ブロックでenumerrateにぐるぐるループを回して複雑な処理をする高機能メソッドもあるので、それはドキュメント見てくださいって話ですが、真骨頂はObjective-Cでもカジュアルに正規表現が使えることではないかと思う。