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でもカジュアルに正規表現が使えることではないかと思う。

参考資料: iPhoneアプリで正規表現を使う - 24/7 twenty-four seven