1.Shell正則表達式
Linux中常用的有兩種正則表達式引擎:基礎正則表達式BRE、擴展正則表達式ERE。
正則表達式也譯爲正規表示法、常規表示法,是一種字符模式,用於再查找過程中匹配指定的字符。
支持正則表達式的程序:locate | find | vim | grep | sed | awk
1.1 基礎正則表達式
字符 | 描述 |
---|---|
. | 匹配除換行符\n之外的任何單個字符 |
* | 匹配前面的子表達式零次或多次 |
.* | 匹配任意長度字符 |
^ | 匹配輸入字符串的開始位置(行首) |
$ | 匹配輸入字符串的結尾位置(行尾) |
^$ | 空行 |
[] | 匹配包含在方括號裏的任意一個字符或一組單個字符 |
[^] | 匹配不包含在方括號裏任意一個字符或一組單個字符 |
< | 匹配單詞開頭的位置 |
> | 匹配單詞詞尾的位置 |
< > | 精確匹配 |
{n} | 匹配前面的字符連續出現n次 |
{n,} | 匹配前面的字符至少出現n次 |
{n,m} | 匹配前面的字符至少出現n次與m次之間 |
( ) | 保存被匹配的字符 |
\d | 匹配數字[0-9]。(grep -P) |
\w | 匹配字母數字下劃線[a-zA-Z0-9_]。(grep -P) |
\s | 匹配空格、製表符、換行符[\t\r\n]。(grep -P) |
1.2 擴展正則表達式
grep需使用參數-E或使用egrep,sed需使用參數-r。
擴展正則表達式 | 說明 |
---|---|
+ | 匹配前面的子表達式一次或多次 |
? | 匹配前面的子表達式零次或一次,或指明一個非貪婪限定符 |
| | 指明兩項之間的一個選擇(或) |
() | 標記一個子表達式的開始和結束位置。 |
{n} | 匹配前面的字符連續n次 |
{n,} | 匹配前面的字符至少n次 |
{n,m} | 匹配前面的字符n到m次 |
1.3 第二類正則表達式
表達式 | 說明 |
---|---|
[:alnum:] | 字符與數字字符 |
[:alpha:] | 字母字符(包括大小寫字母) |
[:blank:] | 空格與製表符 |
[:digit:] | 數字 |
[:lower:] | 小寫字母 |
[:upper:] | 大寫字母 |
[:punct:] | 標點符號 |
[:space:] | 包括換行符,回車等在內的所有空白 |