正規表示式的小總結

2022-05-26 11:18:10 字數 3294 閱讀 4024

今天在專案中用到幾個之前用的比較少一點的正規表示式,剛好有時間整理一下,可能有一些不常用到,但估計下面的在ios的開發中基本夠用,分享給大家,廢話不多,進入主題。

作用:1.資料驗證— 測試輸入的字串,是否符合一定的規則,如email位址,**,qq號,**號碼等

2.替換文字 — 識別文件的中的特定文字,例如:「」「\」之類的特殊字元。 如:文章排版(新增空格,tab等)

3.提取字串 -- 提取一些特定的字元。

ios中正規表示式的基本語法

首先,特殊符號』^'和』$'。他們的作用是分別指出乙個字串的開始和結束。

「^one」:表示所有以」one」開始的字串(」one cat」,」one123″,·····);

「a dog$」:表示所以以」a dog」結尾的字串(」it is a dog」,·····);

「banana」:表示任何包含」banana」的字串。

『*』,』+'和』?'這三個符號,表示乙個或n個字元重複出現的次數。它們分別表示「沒有或更多」([0,+∞]取整),「一次或更多」([1,+∞]取整),「沒有或一次」([0,1]取整)。下面是幾個例子:

「ab*」:表示乙個字串有乙個a後面跟著零個或若干個b(」a」, 「ab」, 「abbb」,……);

「ab?」:表示乙個字串有乙個a後面跟著零個或者乙個b( 」a」, 「ab」);

「a?b+$」:表示在字串的末尾有零個或乙個a跟著乙個或幾個b( 」b」, 「ab」,」bb」,」abb」,……)。

可以用大括號括起來({}),表示乙個重複的具體範圍。例如

「ab」:表示乙個字串有乙個a跟著4個b(」abbbb」);

「ab」:表示乙個字串有乙個a跟著至少1個b(」ab」,」abb」,」abbb」,……);

「ab」:表示乙個字串有乙個a跟著3到4個b(」abbb」,」abbbb」)。

那麼,「*」可以用表示,「+」可以用表示,「?」可以用表示

注意:可以沒有下限,但是不能沒有上限!例如「ab」是錯誤的寫法

「 | 」表示「或」操作:

「a|b」:表示乙個字串裡有」a」或者」b」;

「(a|bcd)ef」:表示」aef」或」bcdef」;

「(a|b)*c」:表示一串」a」"b」混合的字串後面跟乙個」c」;

方括號」[ ]「表示在括號內的眾多字元中,選擇1-n個括號內的符合語法的字元作為結果,例如

「[ab]「:表示乙個字串有乙個」a」或」b」(相當於」a|b」);

「[a-d]「:表示乙個字串包含小寫的』a'到』d'中的乙個(相當於」a|b|c|d」或者」[abcd]「);

「^[a-za-z]「:表示乙個以字母開頭的字串;

「[0-9]a」:表示a前有一位的數字;

「[a-za-z0-9]$」:表示乙個字串以乙個字母或數字結束。

「.」匹配除「\r\n」之外的任何單個字元:

「a.[a-z]「:表示乙個字串有乙個」a」後面跟著乙個任意字元和乙個小寫字母;

「^.$」:表示任意1個長度為5的字串;

「\num」 其中num是乙個正整數。表示」\num」之前的字元出現相同的個數,例如

「(.)\1″:表示兩個連續的相同字元。

「10\」 : 表示數字1後面跟著1或者2個0 (「10″,」100″)。

」 0\ 」 表示數字為至少3個連續的0 (「000」,「0000」,······)。

在方括號裡用』^'表示不希望出現的字元,』^'應在方括號裡的第一位。

「@[^a-za-z]4@」表示兩個」@」中不應該出現字母)。

常用的還有:

「 \d 」匹配乙個數字字元。等價於[0-9]。

「 \d」匹配乙個非數字字元。等價於[^0-9]。

「 \w 」匹配包括下劃線的任何單詞字元。等價於「[a-za-z0-9_]」。

「 \w 」匹配任何非單詞字元。等價於「[^a-za-z0-9_]」。

ios中書寫正規表示式,碰到轉義字元,多加乙個「\」,例如:

全數字字元:@」^\\d\+$」

ios常用正規表示式

正規表示式用於字串處理、表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。

英文本母:[a-za-z] 

匹配中文,英文本母和數字及_:

^[\u4e00-\u9fa5_a-za-z0-9]+$

同時判斷輸入長度:

[\u4e00-\u9fa5_a-za-z0-9_]

^[\w\u4e00-\u9fa5\uf900-\ufa2d]*$ 1、乙個正規表示式,只含有漢字、數字、字母、下劃線不能以下劃線開頭和結尾:

^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$  其中:

^  與字串開始的地方匹配

(?!_)  不能以_開頭

(?!.*?_$)  不能以_結尾

[a-za-z0-9_\u4e00-\u9fa5]+  至少乙個漢字、數字、字母、下劃線

$  與字串結束的地方匹配

放在程式裡前面加@,否則需要\\進行轉義 @"^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$"

(或者:@"^(?!_)\w*(?

^[a-za-z0-9_\u4e00-\u9fa5]+$

3、由數字、26個英文本母或者下劃線組成的字串

^\w+$

4、2~4個漢字

@"^[\u4e00-\u9fa5]$"; 

5.最長不得超過7個漢字,或14個位元組(數字,字母和下劃線)正規表示式

^[\u4e00-\u9fa5]$|^[\da-za-z_]$

7.匹配月份的正規表示式

^[1-9]$|^1[0-2]$

注:個位數月份匹配方式 前面不能加 0。

^0?[1-9]$|^1[0-2]$

注:個位數月份前可以加0或者不加。

匹配年份19**或者20**

^(19|20)[0-9]$

8.提取html中的超連結。

9.提取url鏈結

^(f|ht)(tp|tps):\/\/([\w-]+\.)+[\w-]+(\/[\w-./?%&=]*)?

正規表示式小總結

1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的正實數 0 9 0 9...

正規表示式小總結

用一串特殊字元,可匹配符合相應規律的所有字串。字元代表 a,b,c,d 1,2,3,4 都是原意。匹配除換行符以外的任意字元 w匹配字母或數字或下劃線或漢字 s匹配任意的空白符 d匹配數字 b匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 w匹配任意不是字母,數字,下劃線,漢字的字元 s匹配任...

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...