使用nspredicate進行正則判斷時,特別是關鍵字matches進行
匹配時,正規表示式中使用特殊字元意義說明如下:1、
"\"將下乙個字元標記為乙個特殊字元,或乙個原義字元,或乙個向後引用,或乙個八進位制轉義符。例如,
"\\n"
匹配"\n"
,"\n"
匹配換行符,
"\\"
匹配"\"
,"\("
則匹配"(";2
、"^"
匹配輸入字串的開始位置。如果設定了
regexp
物件的multiline
屬性,"^"
也匹配"\n"
或"\r"
之後的位置;3、
"$"匹配輸入字串的結束位置。如果設定了
regexp
物件的multiline
屬性,"$"
也匹配"\n"
或"\r"
之前的位置;4、
"*"匹配前面的子表示式零次或多次
(大於等於0次
)。例如,
"zo*"
能匹配"z"
、"zo"
、"zoo"
。"*"
等價於"";5
、"+"
匹配前面的子表示式一次或多次
(大於等於
1次)。例如,
"zo+"
能匹配"zo"
、"zoo"
,但不能匹配
"z"。
"+"等價於"";
6、"?"匹配前面的子表示式零次或一次。例如,
"do(es)?"
可以匹配
"do"
或"does"
中的"do"
。"?"
等價於"";7
、""n
是乙個非負整數。匹配確定的
n次。例如,
"o"不能匹配
"bob"
中的"o"
,但是能匹配
"food"
中的兩個
"o";8、
""n是乙個非負整數。至少匹配
n次。例如,
"o"不能匹配
"bob"
中的"o"
,但能匹配
"foooood"
中的所有o,
"o"等價於
"o+"
,"o"
則等價於
"o*";9
、""m和n
均為非負整數,其中
n<=m
。最少匹配
n次且最多匹配
m次。例如,
"o"將匹配
"fooooood"
中的前三個o,
"o"等價於
"o?"
,請注意在逗號和兩個數之間不能有空格;10、
"?"當該字元緊跟在任何乙個其他限制符
"*,+,?,,
,"後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜尋的字串,而預設的貪婪模式則盡可能多的匹配所搜尋的字串。例如,對於字串
"oooo"
,"o+?"
將匹配單個
"o",而
「o+」
將匹配所有
「o」;11、
"."點能匹配除
"\r\n"
之外的任何單個字元。要匹配包括
"\r\n"
在內的任何字元,請使用像
"[\s\s]"
的模式;12、
"x|y"匹配x
或y。例如,
「z|food」
能匹配「z」
或「food」
。「(z|f)ood」
則匹配「zood」
或「food」。13
、"[xyz]"
字元集合。匹配所包含的任意乙個字元。例如,
「[abc]」
可以匹配
「plain」
中的「a」。14
、"[^xyz]"
負值字元集合。匹配未包含的任意字元。例如,
「[^abc]」
可以匹配
「plain」
中的「plin」。15
、"[a-z]"
字元範圍。匹配指定範圍內的任意字元。例如,
「[a-z]」
可以匹配
「a」到
「z」範圍內的任意小寫字母字元。注意:
只有連字元在字元組內部時
,並且出現在兩個字元之間時
,才能表示字元的範圍
; 如果出字元組的開頭
,則只能表示連字元本身.16
、"[^a-z]"
負值字元範圍。匹配任何不在指定範圍內的任意字元。例如,
「[^a-z]」
可以匹配任何不在
「a」到
「z」範圍內的任意字元。17、
"\b"
匹配乙個單詞邊界,也就是指單詞和空格間的位置。例如,
「er\b」
可以匹配
「never」
中的「er」
,但不能匹配
「verb」
中的「er」。18
、"\b"
匹配非單詞邊界。
「er\b」
能匹配「verb」
中的「er」
,但不能匹配
「never」
中的「er」。19
、\cx"
匹配由x
指明的控制字元。例如,
\cm匹配乙個
control-m
或回車符。
x的值必須為
a-z或
a-z之一。否則,將
c視為乙個原義的
「c」字元。20、
"\d"
匹配乙個數字字元。等價於
[0-9]。21
、"\d"
匹配乙個非數字字元。等價於
[^0-9]。22
、"\f"
匹配乙個換頁符。等價於
\x0c
和\cl。23
、"\n"
匹配乙個換行符。等價於
\x0a
和\cj。24
、"\r"
匹配乙個回車符。等價於
\x0d
和\cm。25
、"\s"
匹配任何空白字元,包括空格、製表符、換頁符等等。等價於
[ \f\n\r\t\v]。26
、"\s"
匹配任何非空白字元。等價於
[^ \f\n\r\t\v]。27
、"\t"
匹配乙個製表符。等價於
\x09
和\ci。28
、"\v"
匹配乙個垂直製表符。等價於
\x0b
和\ck。29
、"\w"
匹配包括下劃線的任何單詞字元。等價於
"[a-za-z0-9_]"。30
、"\w"
匹配任何非單詞字元。等價於
"[^a-za-z0-9_]"。31
、"\xn"匹配n
,其中n
為十六進製制轉義值。十六進製制轉義值必須為確定的兩個數字長。例如,
「\x41」
匹配「a」
。「\x041」
則等價於
「\x04&1」
。正規表示式中可以使用
ascii
編碼。32
、"\num"
匹配num
,其中num
是乙個正整數。對所獲取的匹配的引用。例如,
「(.)\1」
匹配兩個連續的相同字元。33、
"\n"
標識乙個八進位制轉義值或乙個向後引用。如果
\n之前至少
n個獲取的子表示式,則
n為向後引用。否則,如果
n為八進位制數字(
0-7),則
n為乙個八進位制轉義值。34、
"\nm"
標識乙個八進位制轉義值或乙個向後引用。如果
\nm之前至少有
nm個獲得子表示式,則
nm為向後引用。如果
\nm之前至少有
n個獲取,則
n為乙個後跟文字
m的向後引用。如果前面的條件都不滿足,若n和
m均為八進位制數字(
0-7),則
\nm將匹配八進位制轉義值nm。
35、"\nml"如果n
為八進位制數字(
0-7),且m和
l均為八進位制數字(
0-7),則匹配八進位制轉義值
nml。36、
"\un"匹配n
,其中n
是乙個用四個十六進製制數字表示的
unicode
字元。例如,
\u00a9
匹配版權符號
。如電子郵箱號碼驗證:
nsstring *reguraltext = @"[a-z0-9a-z._%+-]+@[a-za-z0-9.-]+\\.[a-za-z]";
謂詞NSPredicate的使用
謂詞是用來為資料新增過濾條件,從而更加精確的找到找到所描述條件的資料。蘋果為我們封裝好了nspredicate類,我們可以很方便的得到我們需要的過濾條件。謂詞的簡單語法總結 比較運算 大於 小於 大於等於 小於等於 等於 不等於 between 左邊的表示式等於右邊的表示式的值或者介於它們之間。右邊...
謂詞 (NSPredicate)使用詳情
謂詞 更加詳細 判斷是否滿足條件 第一種判斷乙個陣列 array 中滿足條件的 nspredicate predicate nspredicate predicatewithformat age 20 定義謂詞 for person p in array 第二種 nspredicate predic...
NSPredicate 的使用 持續更新
nspredicate 謂詞工具一般用於過濾陣列資料,也可用來過濾coredata查詢出的資料.1 支援keypath 2 支援正規表示式 在使用之前先新建3個類 teacher info address,詳細 如下 info.h import inte ce info nsobject prope...