ios從4.0開始支援正規表示式。具體涉及到的類是:
nsregularexpression
nstextcheckingresult
有了這個內建的ios正規表示式函式,可以不用regexkitlite了。現在比較強的正則庫是pcre的,mac上pcre的實現見:
兩個例子說明一下nsregularexpression的用法:
[cpp]view plain
copy
-(void
)parsestring
} }
nsregularexpression功能還是比較強大的,支援正則巢狀分組,下面是例子:
[cpp]view plain
copy
nsstring * tmp = [nsstring stringwithcontentsoffile:[[nsbundle mainbundle] pathforresource:@
"dreamcafe.rtf"
oftype:nil]
encoding:nsutf8stringencoding
error:nil];
// nsrange r;
nsstring *regexstr = @"hbhwxtime[\"\']><.*?>(.+?)<"
; nserror *error = null;
nsregularexpression *regex = [nsregularexpression regularexpressionwithpattern:regexstr
options:nsregularexpressioncaseinsensitive
error:&error];
__block nsmutablearray * timetimes = [nsmutablearray array];
[regex enumeratematchesinstring:tmp options:0 range:nsmakerange(0, [tmp length]) usingblock:^(nstextcheckingresult *result, nsmatchingflags flags, bool
*stop) ];
/*注釋:
[result rangeatindex:0] yuresult.range 等價
*/說明:
匹配結果:
nstextcheckingresult
!!!用range來標示匹配到的每乙個子表示式/分組的。既通過substringwithrange:才能獲取到某個子表示式匹配到的字串
range
resulttype
numberofranges 匹配到的分組/子表示式個數
– rangeatindex: 獲取第幾個子表示式
iOS 正規表示式
正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索 替換那些符合某個模式的文字。系統自帶的,...
ios 正規表示式
ab7 必須找到連在一起的ab7 0 9 找到0 9中的乙個即可 0 9 找到0 9中的乙個即可 0123456789 找到0 9中的乙個即可 d表示數字,d表示3個數字連在一起 d d d表示3個數字連在一起 da表示3個數字2個a連在一起 d 2個或4個數字連在一起 表示開始 表示結束 d 開始...
iOS 正規表示式
1.前言 正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元以及這些特定字元的組合,組成乙個規則字串,這個規則字串用來表達對字串的一種過濾邏輯。常見的用處就是匹配字串的合法性,擷取特定的字串等等。2.常見語法 語法說明 表示式例項 完整匹配的字串 一般字元 匹配自身 kity ki...