1、特珠代碼:
\b 退格鍵,也就是說把輸出的光標往回退格子 \d+ 表示1位或更多位數字 \d 表示數字 \t 表示製表符,Tab \r 表示回車符,把光標移動到行首而不換行 \n 表示換行符昌,把光標移動到行首並且換行 \s 表示代表任意空白字符,包括空格,製表符(Tab),換行符 \w 表示字母數字 ^ 表示匹配字符串的開始 $ 表示匹配字符串的結束
例子:
0\d{2}-\d{8} 表示以0開頭,\d表示必須連續重複出現2次,再以-爲分隔符,\d表示必須連續重複出現8次數字,跟0\d\d-\d\d\d\d\d\d\d\d含意相同 ^\d{5,12}$ {2}代表只能不多不少重複2次,{5,12}則是必須重複最少5次,最多12次,否則都不匹配 \ba\w*\b 匹配以字母a開頭的單詞-先是某個單詞開始處(\b),然後是字母a,然後是任意數量的字母或數字(\w*),最後是單詞結束處(\b)。 \b\w{6}\b 匹配剛好6個字母/數字的單詞。
注意:"+" 是和 "*" 類似的特殊代碼,不同的是*代表重複任意次(可能是0次),而+則代表重複1次或更多次。
2、反義
\W 表示匹配任意不是字母和數字的字符 \S 表示匹配任意不是空白符的字符 \S+ 表示不包含空白符的字符串。 \D 表示匹配任意非數字的字符 \B 表示匹配不是單詞開頭或結束的位置 [^x] 表示匹配除了x以外的任意字符 [^wsyht] 表示匹配除了wsyht字母以外的任意字符 <a[^>]+> 表示用尖括號括起來的以a開頭的字符串,再匹配除了>以外的其它字符
3、字符轉義:
轉義前 轉義後
\. -> . \* -> * \\ -> \ \^ -> ^ \# -> # \( -> ( \) -> )
4、重複
. 表示除了換行符之外的其它字符 * 表示前邊的內容可以重複任意次,可能是0次 .* 表示任意個字符 + 表示重複一次或更多次 ? 表示零或一次 {n} 表示重複n次 {n,} 表示重複n次或更多次 {n,m} 重複n次到m次 例子; Windows\d+ 匹配Windows後面跟1個或更多數字 13\d{9} 匹配以13後面跟9個數字(中國的手機號) ^\w+ 匹配一行的第一個單詞(或整個字符串的第一個單詞,具體代表哪個意思得看選項設置)
5、字符匹配:
[abcde] 匹配a、b、c、d、e任意一個字母 [!@#$%] 匹配!、@、#、$、%任意一個字符 [0-9] 匹配0到9任意一位數字,和\d含意一致 [a-zA-Z0-9] 匹配任意一位數字或字母,不分區分大小寫,和\w含意一致,和[a-zA-Z]含意一致 [^a-z] 範圍內取反 [#_-] 匹配#_-的行 [#-_] 匹配從#到_的行 [?!_-] 範圍內匹配字符 ^[^a-z] 不以小寫字母任意開頭的行 匹配MAC地址的正則表達式 00:0c:29:C1:C1:FF 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f [0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-f]{2}: [0-9a-fA-F]{2} 可轉換成如下: grep -E '([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}' ifcfg-eth0
6、替換(多項匹配)
0\d{2}-\d{8}|0\d{3}-\d{7} 匹配兩種以"-"分隔的電話號碼:一種是三位區號,8位本地號(如010-12345678),一種是4位區號,7位本地號(0376-2233445) \(0\d{2}\)[- ]?\d{8}|0\d{2}[- ]?\d{8} 匹配3位區號的電話號碼,其中區號可以用小括號括起來,也可以不用,區號與本地號間可以用連字號或空格間隔,也可以沒有間隔 \d{5}-\d{4}|\d{5} 匹配美國的郵政編碼。美國郵編的規則是5位數字,或者用連字號間隔的9位數字 Windows98|Windows2000|WindosXP 匹配Windows98 或 Windows2000 或 WindosXP
7、分組
用小括號來指定子表達式(也叫做分組)
獲取IP地址分組展示:
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) IP址第1、2、3、4列可能出現的三位數 21[0-9] 22[0-9] 23[0-9] 24[0-9] 或 251, 252 253 254 255 或 [01][0-9][0-9]+
8、位置指定
(?=exp) 匹配exp前面的位置 (?<=exp) 匹配exp後面的位置 (?!exp) 匹配後面跟的不是exp的位置 (?<!exp) 匹配前面不是exp的位置 例子: (?=wsyht) 匹配wsyht前面的位置 (?<=wsyht) 匹配wsyht後面的位置 \d{3}(?!\d) 匹配三位數字,而且這三位數字的後面不能是數字 (?<![a-z])\d{7} 匹配前面不是小寫字母的七位數字