Linux系統中常用正則表達式詳解
正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯,主要通過正則匹配來獲取我們想要的特定部分。
要想真正的用好正則表達式,必須要理解以下元字符:
字符 | 描述 |
---|---|
\ | 轉譯字符:將將下一個字符標記爲或特殊字符、或原義字符、或向後引用、或八進制轉義符 |
\n | 換行符 |
\r | 回車符 |
( ) | 標記一個子表達式的開始和結束位置,供以後使用 |
^ | 匹配行首 |
$ | 匹配尾行 |
* | 匹配尾行 |
? | 匹配0次或者一次 |
I | 匹配0次或者一次 |
\w | 匹配包括下劃線的任何單詞字符 |
\W | 匹配任何非單詞字符 |
. | 匹配除換行符的任意單字符(點) |
{n} | 匹配 n 次,例如,‘o{2}’ 不能匹配 “dog”,但能匹配 “good” |
{n,} | 最少匹配 n 次,例如,‘o{2}’ 不能匹配 “dog”,但能匹配 “gooooood” |
{n} | 最少匹配n 次,最多m次 |
[xyz] | 字符集合,匹配所含的任一字符 |
[^xyz] | 字符集合,匹配未包含的任一字符 |
[a-z] | 字符範圍,匹配範圍內任意字符,小寫字符 |
[^a-z] | 字符範圍,匹配不在指定範圍內任意字符,除小寫字符 |
正則表達式使用程度非常廣泛,命令行以及環境都會有他的影子,數量使用會儘可能的提高工作效率,節約寶貴時間。
-
從test.txt文本文件中查找已a開頭,中間一個字符,已b結尾的指定文件的行
grep a.b test.txt
其中 "| . | * | ^ | $ | " 這四個字符所有語言都支持,所以這四個是基礎的正則表達式。
以下可幫助加深理解記憶:
- [A-Z] 26個大寫字母
- [a-z] 26個小寫字母
- [0-9] 0至9數字
- [A,B,C,D] 包含A或B或C或D字母
- [a,b,c,d] 包含a或h或t或w字母
- [0,2,4,6] 包含0或2或4或6數字
當你發現自己的才華撐不起野心時,就請安靜下來學習吧!