今日講Regular Expression,簡稱Regex。
通常在Linux裡頭最常用Regex的commands是grep,sed。可能很多讀者亦非常熟悉。
Regex包括12個 metacharacters,它們個自有特殊意義:
. 代表所有characters/numbers, except line breaks
例如:/1.7/g 可以match 187,1%7,1a7
{ } 代表 quantifier
例如:/b{4}/g 可以match bbbb
如果後面加上逗號,則是至無限的意思,如b{2,}會match兩個b到無限個b
+ 代表 1次到無限次
例如:/b+/g 可以match b, bb, bbbbbbb, etc
[] 代表range
例如:/[a-zA-Z0-9] /g 可以match 所有字母及數字
這裡順便介紹 ^(negate)的用法,/^[a-f]/g 指match a至f以外的所有characters,當然包括g到z,以及符號如%
\w 等於 [a-zA-Z0-9_]
\d 等於[0-9]
\d 等於[0-9]
\s 等於任何white space(spaces, tabs, line breaks)
$ 代表句子的結尾 end of string
最後介紹look behind
look behind就是有condition的情況下match pattern
e.g.
e.g.
最後有興趣多體驗Regex妙用的讀者可以去下面的網站玩下
http://regexr.com
http://regexr.com



