NSPredicate使用(1) 識別符號說明

2021-07-25 19:07:09 字數 4497 閱讀 2978

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