特殊字元與字元匹配符
特殊字元
\xn匹配ASCII碼值等於n的字元,n必須是兩位十六進位整數。例:\x41匹配字元“A”。可以表示所有非列印字元。
\n此處的n是一個一位的八位元0-7)。如果\n前面至少有n個匹配子捕獲,那麼\n是反向引用。
\nm是此處的m和n都是一個一位的八位元0-7)。如果\mn前面至少有n個匹配子捕獲,那麼\mn是反向引用。
\nm1是當n是八位元0-3),m和1是八位元0-7)時,匹配ASCII碼值等於八進位的nml字元。
\un匹配Unicoe編碼等於n的字元。此處的n必須是一個4位的十六進位整數。例:\u00A9匹配著作權符號
\cx匹配由x指定的控制字元。例:\cM匹配Ctrl+M表示的控制字元,即斷行符號符。X的值必須在A-Z或a-z之間,否則c就是字面意義上的字元“c”
字元匹配符
[...]匹配方括弧中包含的字元集中的任意一個字元。例:[abc]可以與a,b,c3個字元中任何一個匹配。如果字元集中要包含]字元,需要將其放在第一位,即緊跟在[後面。若要在[...]中包含\,要用\\。
[^...]匹配方括弧中未包含的任一字元。例:[^abc]可匹配a,b,c,3個字元以外的任何字元。
[a-z]匹配任何指定範圍內的任一字元。例如,[1-9]匹配1-9之間任何數字字元。若要在方括弧中包含連字號-,可以用"\"將其標記為原義字元,例[a\-z]或[-a-z]或[a-z-]。
[^a-z]匹配不在指定範圍內的任何字元。
\d匹配任意一個數字字元
\D匹配任意一個非數字字元
\s匹配任意空白字元,包括空格、定位字元和換頁符等,等效於[\f\n\r\t\v]
\S匹配任意非空白字元
\w匹配任意英文字母和數字類字元以及底線
\W匹配任何非英文字母和數字類字元,但不包括底線
.匹配除\n之外的任何單個字元。例:(.)\1匹配除\n之外的兩個連續的相同字元
定位器與原義字元
用於文本驗證的定位器
用^匹配目標字串的開始位置,也用於行首匹配,即與\n和\r之後的位置匹配
用$匹配目標字串結尾位置,也可用於行尾匹配
\b匹配一個字邊界,包含字與空格間的位置,以及目標字串的開始和結束位置,例:er\b匹配neverok中的er,不匹配verb中的er。
\B匹配非字元邊界
對特殊字元進行轉義
運算式中用到的一些元字元不再表示原來的字面意義,,匹配有特殊字面意義的元字元,使用“\”將字元轉為原義字元。需要進行轉義的有“$”,“(”,“)”,“*”,“.”,“[”,“]”,“?”,“\”,“/”,“^”“{”“}”“|”
本文出自 “yuhuifei” 部落格,請務必保留此出處http://4745272.blog.51cto.com/4735272/1297958