1、基本規則
錨點----辨別位置
^: 表示句首. $: 表示句尾.
\<: 表示詞首. \>: 表示詞尾.
修飾符
*: 表示前一個 char. set 的出現次數為 0 或多次,[a-z]+able.
?: 表示前一個 char. set 的出現次數為 0 或 1 次.
+: 表示前一個 char. set 的出現次數為 1 或多次.
{n}: 表示前一個 char. set 的出現次數必須為 n 次.
|: 或比對,如a|b|c比對a或b或c
(): 分組符号,如,love(able|rs)ov+比對loveable或lovers,比對一個或多個ov
{n,}: 表示前一個 char. set 的出現次數至少為 n 次.
{n,m}: 表示前一個 char. set 的出現次數為 n 到 m 次.
\:轉義字元,如\{5,3\}來表示括号
[ ]:單個字元;如[A] 即A符合要求
[^A-F]:比對不在指定範圍内的字元所在行
[ - ]: 範圍;如[A-Z]即A,B,C一直到Z都符合要求
.: 比對任意一個字元(1個)
.*合起來表示該位置可以出現0個以上的任意字元。
[]:比對其中之一的字元
\(\):标記字元串,将比對到的結果存放入寄存器中,如’\(love\)’,love被标記為1
\w: 比對文字和數字字元,也就是[A-Za-z0-9],如:’G\w*p’比對以G後跟零個或多個文字或數字字元,然後是p。
\W \w: 的反置形式,比對一個或多個非單詞字元,如點号句号等。
\b: 單詞鎖定符,如: ‘\bgrep\b’隻比對grep。
2、4. POSIX字元類
為了在不同國家的字元編碼中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字元類,如[:alnum:]是A-Za-z0-9的另一個寫法。要把它們放到[]号内才能成為正規表達式,如[A- Za-z0-9]或[[:alnum:]]。
[:alnum:]文字數字字元
[:alpha:]文字字元
[:digit:]數字字元
[:graph:]非空字元(非空格、控制字元)
[:lower:]小寫字元
[:cntrl:]控制字元
[:print:]非空字元(包括空格)
[:punct:]标點符号
[:space:]所有空白字元(新行,空格,制表符)
[:upper:]大寫字元
[:xdigit:]十六進制數字(0-9,a-f,A-F)
參考