一、系統自帶正規表示式用法
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...