正規表示式使用指南七

2021-04-06 21:21:15 字數 1886 閱讀 5437

正規表示式

^符號匹配字串的開頭。

例如:    ^abc 與"abc xyz"匹配,而不與"xyz abc"匹配

$符號匹配字串的結尾。

例如:    abc$ 與"xyz abc"匹配,而不與"abc xyz"匹配。    注意:如果同時使用^符號和$符號,將進行精確匹配。

例如:       ^abc$ 只與"abc"匹配 

符號匹配0個或多個前面的字元。

例如:    ab* 可以匹配"ab"、"abb"、"abbb"等

+符號匹配至少乙個前面的字元。

例如:    ab+ 可以匹配"abb"、"abbb"等,但不匹配"ab"。

?符號匹配0個或1個前面的字元。

例如:    ab?c? 可以且只能匹配"abc"、"abbc"、"abcc"和"abbcc"

.符號匹配除換行符以外的任何字元。

例如:    (.)+ 匹配除換行符以外的所有字串

x|y匹配"x"或"y"。

例如:    abc|xyz 可匹配 "abc"或 "xyz",而"ab(c|x)yz"匹配 "abcyz"和"abxyz"

匹配恰好n次(n為非負整數)前面的字元。

例如:    a 可以匹配"aa",但不匹配"a"

匹配至少n次(n為非負整數)前面的字元。

例如:    a 匹配"aaa"、"aaaa"等,但不匹配"a"和"aa"。    注意:a等價於a+       a等價於a

匹配至少m個,至多n個前面的字元。

例如:    a 只匹配"a"、"aa"和"aaa"。    注意:a等價於a?

[xyz]表示乙個字符集,匹配括號中字元的其中之一。

例如:    [abc] 匹配"a"、"b"和"c"

[^xyz]表示乙個否定的字符集。匹配不在此括號中的任何字元。

例如:    [^abc] 可以匹配除"a"、"b"和"c"之外的任何字元

[a-z]表示某個範圍內的字元,匹配指定區間內的任何字元。

例如:    [a-z] 匹配從"a"到"z"之間的任何乙個小寫字母字元

[^m-n]表示某個範圍之外的字元,匹配不在指定範圍內的字元。

例如:    [m-n] 匹配除從"m"到"n"之間的任何字元

符號是轉義操作符。

例如:     換行符    f 分頁符     回車      製表符    v 垂直製表符     匹配""    / 匹配"/"    s 任何白字元,包括空格、製表符、分頁符等。等價於"[ f v]"    s 任何非空白的字元。等價於"^f v]"    w 任何單詞字元,包括字母和下劃線。等價於" [a-za-z0-9_]"    w 任何非單詞字元。等價於"[^a-za-z0-9_]"    匹配單詞的結尾。

例如:      ve 匹配單詞"love"等,但不匹配"very"、"even"等

b匹配單詞的開頭。

例如:      veb 匹配單詞"very"等,但不匹配"love"等

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

例如:      abcdxyz 匹配"abc2xyz"、"abc4xyz"等,      但不匹配"abcaxyz"、"abc-xyz"等

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

例如:      abcdxyz 匹配"abcaxyz"、"abc-xyz"等,      但不匹配"abc2xyz"、"abc4xyz"等

num匹配num個(其中num為乙個正整數),引用回到記住的匹配。

例如:      (.)1 匹配兩個連續相同的字元。

onum匹配n(其中n為乙個小於256的八進位製換碼值)。

例如:      o011 匹配製表符

xnum匹配num(其中num為乙個小於256的十六進製製換碼值)。

例如:      x41 匹配字元"a"

正規表示式使用指南二

下表從最高到最低說明了各種正規表示式運算子的優先順序順序 運算子 說明 轉義符 括號和中括號 限定符 anymetacharacter,anycharacter 定位點和序列 替換 字元的優先順序比替換運算子高,替換運算子允許 m food 與 m 或 food 匹配。若要匹配 mood 或 foo...

正規表示式使用指南四

本節前面的主題中的示例只涉及章節標題查詢。字串 chapter 後面跟空格和數字的任何匹配項可能是實際章節標題,或者也可能是指向另一章的交叉引用。由於真正的章節標題總是出現在行的開始,所以設計一種方法只查詢標題而不查詢交叉引用可能很有用。定位點提供該能力。定位點使您能夠將正規表示式固定到行首或行尾。...

正規表示式使用指南六

正規表示式的最重要功能之一是儲存匹配的模式的一部分以供以後重新使用的能力。您可能想起,若在正規表示式模式或模式的一部分兩側加上括號,就會導致表示式的一部分被儲存到臨時緩衝區中。可以通過使用非捕獲元字元 或 來重寫捕獲。每個捕獲的子匹配項按照它們在正規表示式模式中從左到右出現的順序儲存。緩衝區編號從 ...