RegexKitLite是一個很強大的第三方正則表達式開源庫红且,開源地址為:http://regexkit.sourceforge.net/ ,下面我們通過幾個Demo來講解這個庫的具體使用。
首先從地址 http://regexkit.sourceforge.net/ 下載RegexKitLite開源包谎痢,然后解壓,得到RegexKitLite.h和RegexKitLite.m兩個文件,將其導入到工程項目中纯蛾。然后#import "RegexKitLite.h"就可以使用。
第二中方式是通過CocoaPod的方式引入纵隔,在Podfile文件中添加RegexKitLite依賴庫翻诉,通過pod install命令即可下載RegexKitLite庫,同樣通過#import "RegexKitLite.h"就可以使用捌刮。
下面我們具體看下RegexKitLite相關Api的使用碰煌,核心函數(shù)為:
- (NSString *)stringByMatching:(NSString *)regex capture:(NSInteger)capture
參數(shù)regex表示正則表達式,capture表示匹配選項绅作。
capture為0時芦圾,表示返回第一次匹配的字符串,帶完全匹配的結果
capture為1時俄认,表示返回第一次匹配的結果中第一處模糊匹配的子字符串
capture為2時个少,表示返回第一次匹配的結果中第二處模糊匹配碍脏,依次類推。
如下Demo代碼:
NSString *htmlStr = @"oauth_token=1a1de4ed4fca40599c5e5cfe0f4fba97&oauth_token_secret=3118a84ad910967990ba50f5649632fa&name=foolshit";
NSString *regexString = @"oauth_token=(\\w+)&oauth_token_secret=(\\w+)&name=(\\w+)";
NSString *matchedString1 = [htmlStr stringByMatching:regexString capture:0L]; //返回第一次匹配的結果,帶完全匹配的字符
NSString *matchedString2 = [htmlStr stringByMatching:regexString capture:1L]; //返回第一次匹配的結果中第1處模糊匹配稍算,不帶完全匹配的字符中
NSString *matchedString3 = [htmlStr stringByMatching:regexString capture:2L]; //返回第一次匹配的結果中第2處模糊匹配典尾,
NSString *matchedString4 = [htmlStr stringByMatching:regexString capture:3L];
NSLog(@"%@",matchedString1);
NSLog(@"%@",matchedString2);
NSLog(@"%@",matchedString3);
NSLog(@"%@",matchedString4);
htmlStr = @"0_T123F_0_T2F_0_T3F_0";
NSString *regex = @"T123F";
NSString *result = [htmlStr stringByMatching:regex capture:0L];
NSLog(@"匹配結果:%@",result);
輸出結果為:
從輸出結果我們可以看到,當capture為0時糊探,返回的是匹配的整個字符串钾埂,當capture為1時,返回的是模糊匹配的第一個子字符串科平。
在上面字符串“0_T123F_0_T2F_0_T3F_0”褥紫,由于T123F是完全匹配,不存在模糊匹配瞪慧,所以當capture=1時髓考,會拋出異常。