iOS 正規表示式

2021-07-25 20:10:45 字數 3568 閱讀 8814

1.前言

正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元以及這些特定字元的組合,組成乙個規則字串,這個規則字串用來表達對字串的一種過濾邏輯。常見的用處就是匹配字串的合法性,擷取特定的字串等等

2.常見語法

語法說明

表示式例項

完整匹配的字串

一般字元

匹配自身

kity

kity

.匹配任意除換行符以外的字元

a.cabc

\轉義字元,使後面的乙個字元保持原來的意義

a.ca.c

[…]字符集,對應的位置可以是字符集的任意字元

a[bc]d

abd或acd

\d數字:[0-9]

a\dc

a1c、a2c、a3c…

\d非數字:[^\d]

a\dc

abc\s

空白字元

a\sc

a c\s

非空白字元

a\sc

aac\w

單詞字元:[a-za-z0-9_ ]

a\wc

a_c\w

非單詞字元:[^\w]

a\wc

a c\b

匹配\w和\w之間

a\b!bc

a!bc

\b[^\b]

a\bbc

abc\a

僅匹配字串開頭

\aab

ab\z

僅匹配字串結尾

ab\zab^

匹配字串開頭,在多行模式中匹配每一行的開頭

^abab

$匹配字串結尾,在多行模式中匹配每一行的結尾

ab$ab

*匹配前乙個字元0次或無限次

abc*

ab或abc或abcc…

+匹配前乙個字元1次或無限次

abc+

abc或abcc或abcc…

?匹配前乙個字串0次或1次

abc?

ab或abc

匹配前乙個字元m次

abcabbbc

匹配前乙個字元m至b次,m和n可以省略:省略m,匹配0至n次;若省略n,則匹配m至無限次

abcabc或abbc

|任意匹配該符號左右兩側的表示式

kity|pei

kity或pei

3.使用方法

3.1  謂詞建立正規表示式

// 編寫正規表示式:只能是數字或英文,或兩者都存在

nsstring *regex = @"^[a-za-z0-9]*$";// 或者 @"^\\w*$";

// 建立謂詞物件並設定條件的表示式

nspredicate *predicate = [nspredicate predicatewithformat:@"self matches %@", regex];

// 判斷的字串

nsstring *str = @"kitypei100";

// 對字串進行判斷

if ([predicate evaluatewithobject:str]) else

3.2  nsregularexpression類建立正規表示式
nsstring *urlstr = @"[email protected]";

nserror *error;

// 建立nsregularexpression物件並指定正規表示式

nsregularexpression *regex = [nsregularexpression regularexpressionwithpattern:@"[^@]*\\." options:0 error:&error];

if (!error)

} else

3.3  nsregularexpression類抓取多個結果
nsstring *regex = @"\\$\\d*\\*";

nsstring *str = @"$100*$200*$400*";

nserror *error;

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

// 對str字串進行匹配

nsarray *matches = [regular matchesinstring:str options:0 range:nsmakerange(0, str.length)];

// 遍歷匹配後的每一條記錄

for (nstextcheckingresult *match in matches)

4.常用的正規表示式

正規表示式:[

\u4e00-\u9fa5]

正規表示式:[^\x00-\xff

]

正規表示式:\n

\s*\r

正規表示式:[\w!#$%&'*+/=?^_`~-]+(?:\.[\w!#$%&'*+/=?^_`~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
正規表示式:[a-za-z]+://[^\s]*
正規表示式:\d-\d|\d-\
正規表示式:[1-9][0-9]
正規表示式:[1-9]\d

(?!\d)

正規表示式:^(\d)(\d)(\d)(\d)(\d)([0-9]|x)$
正規表示式:([0-9][1-9]|[0-9][1-9][0-9]|[0-9][1-9][0-9]|[1-9][0-9])-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))
正規表示式:^[1-9]\d*$
正規表示式:^-

[1-9]\d*$

正規表示式:^-?[1-9]\d*$
正規表示式:^[1-9]\d*|0$
正規表示式:^-[1-9]\d*|0$
正規表示式:^[1-9]

\d*\.

\d*|0\.

\d*[1-9]

\d*$

正規表示式:^-[1-9]

\d*\.

\d*|-0\.

\d*[1-9]

\d*$

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正規表示式

包含數字和字母的密碼長度6 16位 bool validatepassword nsstring password 密碼正規表示式 nsstring passwordregex a za z 0 9 a za z0 9 nspredicate passwordtest nspredicate pre...