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