iOS基礎 正規表示式物件

2021-07-14 21:44:44 字數 3166 閱讀 4439

一、系統自帶正規表示式用法

1、建立正規表示式物件

nsstring * reg = @"[0-9]+";//字串正規表示式

nserror *error = null;//錯誤物件

nsregularexpression *regex = [nsregularexpression regularexpressionwithpattern:reg options:nsregularexpressioncaseinsensitive error:&error];//匹配reg的正規表示式物件

2、正規表示式物件可呼叫的方法

/**1

* 正規表示式匹配

** @param string 在此字串中匹配

* @param options 一般填0

* @param range 在此範圍內匹配

* @param block 在block內會把匹配到的結果逐個返回nstextcheckingresult,通過此物件的range屬性可以檢視匹配到的字串的location和length,同過substring方法可以得到被匹配字串

*/- (void)enumeratematchesinstring:(nsstring *)string options:(nsmatchingoptions)options range:(nsrange)range usingblock:(void (^)(nstextcheckingresult * __nullable result, nsmatchingflags flags, bool *stop))block;

/**2

* 正規表示式匹配

** @param string 在此字串中匹配

* @param options 一般填0

* @param range 在此範圍內匹配

* @param block 返回陣列,陣列內是每個匹配到的nstextcheckingresult

*/- (nsarray*)matchesinstring:(nsstring *)string options:(nsmatchingoptions)options range:(nsrange)range;

/**3

* 正規表示式匹配

** @param string 在此字串中匹配

* @param options 一般填0

* @param range 在此範圍內匹配

* @param block 返回匹配到的個數

*/- (nsuinteger)numberofmatchesinstring:(nsstring *)string options:(nsmatchingoptions)options range:(nsrange)range;

/**4

* 正規表示式匹配

** @param string 在此字串中匹配

* @param options 一般填0

* @param range 在此範圍內匹配

* @param block 返回第一次匹配到的nstextcheckingresult物件

*/- (nullable nstextcheckingresult *)firstmatchinstring:(nsstring *)string options:(nsmatchingoptions)options range:(nsrange)range;

/**5

* 正規表示式匹配

** @param string 在此字串中匹配

* @param options 一般填0

* @param range 在此範圍內匹配

* @param block 返回第一次匹配到的nstextcheckingresult物件的range

*/- (nsrange)rangeoffirstmatchinstring:(nsstring *)string options:(nsmatchingoptions)options range:(nsrange)range;

3、示例**

//字串正規表示式

nsstring * reg = @"[0-9]+";

//錯誤物件

nserror *error = null;

//匹配reg的正規表示式物件

nsregularexpression *regex = [nsregularexpression regularexpressionwithpattern:reg options:nsregularexpressioncaseinsensitive error:&error];

//匹配結果

#if 0

[regex enumeratematchesinstring:searchtext options:0 range:nsmakerange(0, searchtext.length) usingblock:^(nstextcheckingresult * _nullable result, nsmatchingflags flags, bool * _nonnull stop) ];

#else

//得到陣列,陣列內是匹配的結果物件

nsarray * array = [regex matchesinstring:searchtext options:0 range:nsmakerange(0, [searchtext length])];

if (array.count)

else

}

三、通過謂詞

//驗證是否存在

-(bool)validateregular:(nsstring * )regular matchtext:(nsstring *)text;

$"; //建立謂詞

nspredicate *numberpre = [nspredicate predicatewithformat:@"self matches %@",regular];

//匹配字串,若能匹配返回yes,否則返回no;

bool ismatch = [numberpre evaluatewithobject:text];

return ismatch;

}

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