IOS正規表示式的實現

2021-06-16 22:14:17 字數 1477 閱讀 8604

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...