grep 也有支援 regex 功能, 加 -E 參數或用 egrep
[:alnum:] 英文字母及數字, 即 [0-9a-zA-Z]
\w = [[:alnum:]]
\W = [^[:alnum]].
[:alpha:] 英文字母, 即 [a-zA-Z]
[:cntrl:] 控制碼
[:digit:] 數字, 即 [0-9]
[:graph:] 除了 space 以外的可印字元
[:lower:] 小寫英文字母, 即 [a-z]
[:print:] 可印字元含 space
[:punct:] 除了 space, 英文字母及數字外的符號
[:space:] space, form-feed ('\f'), newline ('\n'), carriage return ('\r'), harizontal tab ('\t'), and vertical tab ('\v').
[:upper:] 大寫英文字母, 即 [A-Z]
[:xdigit:] Hex 字元, 包含 [0-9a-fA-F]
包含 ] 必須放在最前面
包含 ^ 不能放在第一個, 因為放第一個代表除...之外
包含 - 要放在最後
. 代表任何一個字元
「定位」 功能, 但本身不吃掉任何字元 anchor
^ 及 $ 分別表示行首及行尾
\< 及 \> 分別表示字首及字尾
\b 表示字的邊緣
\B 表示不是字的邊緣
計數用, 表達 「前面那個東西重複出現多少次」 的 quantifier
? 可有可無 (0 次或 1 次)
* 重複出現任意次, 包含 0 次
+ 重複出現任意次, 至少 1 次
{n} 重複 n 次
{n,} 重複 n 次(含)以上
{n,m} 重複 n 次到 m 次
ref. man grep
輩子受用的 Regular Expressions -- 兼談另類的電腦學習態度
龍門少尉的窩
鳥哥的 Linux 私房菜 -- 正規表示法
Leave a comment