正規表示式(regular expression,在**中常簡寫為regex、regexp或re)是電腦科學的乙個概念。正規表示式使用單個字串來描述、匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索、替換那些符合某個模式的文字。許多程式語言都支援利用正規表示式進行字串操作。在很多文字編輯器裡,正規表示式通常被用來檢索、替換那些符合某個模式的文字。
正規表示式用於字串處理、表單驗證等場合,實用高效。
生活中處處都是正則:
比如我們描述:4條腿
你可能會想到的是四條腿的動物或者桌子,椅子等
繼續描述:4條腿,活的
就只剩下四條腿的動物這一類了
在linux中,萬用字元是由shell解釋的,而正規表示式則是由命令解釋的,下面就用grep解釋正則。
引數
-n :顯示行號 比如:#grep -n 'root' /etc/passwd
-o :只顯示匹配的內容 比如:#grep -o 'root' /etc/passwd
-q :靜默模式,沒有任何輸出,得用$?來判斷執行成功沒有,即有沒有過濾到想要的內容 比如:#grep -q 'root' /etc/passwd #echo $?
-l :如果匹配成功,則只將檔名列印出來,失敗則不列印,通常-rl一起用,比如:#grep -rl 'root' /etc/passwd
-a :如果匹配成功,則將匹配行及其後n行一起列印出來, 比如:#grep -a 2 'root' /etc/passwd
-b :如果匹配成功,則將匹配行及其前n行一起列印出來,比如:#grep -b 1 'root' /etc/passwd
-c :如果匹配成功,則將匹配行及其前後n行一起列印出來,比如:#grep -c 2 'root' /etc/passwd
-c :如果匹配成功,則將匹配到的行數列印出來,比如:#grep -c 'root' /etc/passwd
-e :等於egrep,擴充套件,比如:#grep -e 'hello' a.txt
-i :忽略大小寫,比如:#grep -i 'ab' a.txt
-v :取反,不匹配,比如:#grep -v 'hello' a.txt
-w:匹配單詞,比如:#grep -w 『hello』 a.txt
grep種類
grep
fgrep
pgrep
egrep
正則介紹
^ 行首 比如:#egrep '^root' 1.txt
$ 行尾 比如:#egrep '$root' 1.txt
. 除了換行符以外的任意單個字元 比如: #egrep 'a.c' 1.txt
* 前導字元的零個或多個 比如 : #egrep 'ab*c' 1.txt
.* 所有字元 比如: #egrep 'a.*c' 1.txt
字元組內的任一字元 比如: # egrep [abcde] 1.txt
[^] 對字元組內的每個字元取反(不匹配字元組內的每個字元) 比如: # egrep [^abcde] 1.txt
^[^] 非字元組內的字元開頭的行 比如: # egrep ^[^abcde] 1.txt
[a-z] 小寫字母 比如: # egrep [a-z] 1.txt
[a-z] 大寫字母 比如: # egrep [a-z] 1.txt
[a-z] 小寫和大寫字母 比如: # egrep [a-z] 1.txt
[0-9] 數字 比如: # egrep [0-9] 1.txt
匹配 {}前字元出現的n次的字串 ,比如:# egrep 'abc' 1.txt
? 匹配 出現0或1次 比如:# egrep 'ab?c' 1.txt
| 管道分割符,「.....或者....」 比如:#egrep 'abc|abc' 1.txt ,#egrep 'compan(y|ies)' 1.txt
表示{}前的字元出現0到無窮次 ,比如:# egrep 'abc' 1.txt
正規表示式 1 初識正規表示式
簡單地說,正規表示式就是一套處理字串的規則和方法,以行為單位對字串進行處理,通過特殊的符號的輔助,我們可以快速的過濾,替換某些特定的字串。運維工作中,會有大量訪問日誌,錯誤日誌,大資料。如何能夠快速的過濾出我們需要的內容,這就需要正規表示式。awk,sed,grep egrep 三劍客要想能工作的更...
正規表示式初識
用來指定乙個字元集合 字元直接是 或 的關係,不是乙個特定的字串,跟 abc 不同 abc a z 在字符集中,元字元 不起作用 abc abc 元字元 在字串尾不起作用 abc 就是普通字元。元字元在字符集首表示匹配補集,abc 就是匹配除了a,b,c以外的字元。匹配行首,位於字串首。制定規則re...
正規表示式初識
正規表示式 為轉義如 表示.郵箱匹配 grep e 0 9a za z 0 9a za z a za z a.txt 查詢郵箱 a z 所有小寫字母 a z 所有大寫字母 0 9 所有數字 0 9 所有非數字 表達取反 0 9 a z 0個或多個小寫字母 a z 至少出現一次小寫字母 a z 出現0...