在shell環境中,通配符能夠匹配文本范圍相當有限。正則表達式是一種用於文本匹配的形式小巧、且高度針對性的編程語言。例如: @[a-z0-9]+\.[a-z]+ 就是一個能匹配電子郵件的正則表達式。
正則表達式的基礎組成部分如下所示:
正則表達式 描述 示例
^ 行起始標記 ^a匹配以a起始的行
$ 行尾標記 a$匹配以a結尾的行
. 匹配任意一個字符 a.匹配ab,ac,ad,....但不能匹配abc,他只能匹配單個字符
[] 匹配包含在[]中的任意一個字符 [09]匹配0或者9
[^] 匹配除了[^]的任意一個字符 9[^123]匹配94,95,...或者9a
[-] 匹配[-]范圍中的任意一個字符 [0-9]匹配0,1,2,3,4,5,6,7,8,9
? 匹配之前的一次或者零次 98?7匹配987,97
* 匹配之前的任意次 987*6匹配986,9876,9876,98776,...
+ 匹配之前至少一次 987*6匹配9876,9876,98776,...
() 創建一個用於匹配的子串 ma(123)x匹配max或者ma123x
{n} 匹配之前的項n次 [0-9]{3}相當於[0-9][0-9][0-9],即匹配任意一個三位數
{n,} 匹配之前的項至少n次 [0-9]{3,}匹配任意一個除兩位數之外的多位數
{n,m} 匹配n到m次
| 匹配兩邊的任意一項 Oct(123 | 456 )匹配Oct123或者Oct456
\ 轉義特殊字符 a\.b匹配a.b
初識正則,如果誰有更好的鏈接,求分享!