柚子快報(bào)邀請碼778899分享:正則表達(dá)式
柚子快報(bào)邀請碼778899分享:正則表達(dá)式
文本三劍客:grep、sed、awk
正則表達(dá)式:由一類特殊字符以及文本字符所編寫的一種模式,處理文本當(dāng)中的內(nèi)容。其中的一些字符不表示字符的字面含義,表示控制或者通配的功能
通配符和正則的區(qū)別:
二者本質(zhì)上的區(qū)別就是通配符對命令進(jìn)行限制,正則表達(dá)式是對文本內(nèi)容進(jìn)行限制
通配符:匹配文件名和目錄名,不能匹配文件的內(nèi)容
*:匹配任意一個(gè)或者多個(gè)字符
?:匹配任意一個(gè)單個(gè)字符
[ ] :匹配范圍之內(nèi)的任意單個(gè)字符
正則表達(dá)式:命令結(jié)果和文本內(nèi)容都可以進(jìn)行匹配
正則表達(dá)式的類型:
1.基本正則表達(dá)式
2.擴(kuò)展正則表達(dá)式
二者的區(qū)別僅限于寫法上的區(qū)別,其他的沒有任何不同
基本正則:
字符匹配,元字符:
. :表示匹配任意的單個(gè)字符
( ):表示分組的意思
[ ]:表示匹配指定范圍內(nèi)的任意單個(gè)字符;[^] 取反,表示范圍之外的
[[:space:]] 表示包含空格,tab鍵也算,換行的空格,回車的空格;[[:blank:]] 表示空白字符(空格和tab鍵(制表符))
\ :轉(zhuǎn)義符,讓字符變成原本的意思;例:\ . 這時(shí) . 就不表示任意單個(gè)字符就表示點(diǎn); \ ( \ ) 這時(shí) ( )就不表示分組就表示括號
" " :避免發(fā)生歧義必須加上,例題:如圖,第一個(gè) . 應(yīng)該表示任意字符,出來結(jié)果為abc;但是第二個(gè) . 應(yīng)該只表示點(diǎn)顯示結(jié)果應(yīng)該為 a.c所以發(fā)生歧義。后加上" "結(jié)果才為正確
次數(shù)的表達(dá)式:
*:表示匹配前面的字符任意次,0次也行,無數(shù)次也行,換言之有多少匹配多少,沒有也行。簡稱:貪婪模式
.*:匹配任意長度的字符,但是至少要有一次,不包括0次
\?:匹配前面的字符0次或者1次,表示可有可無
\ +:匹配前面的字符至少1次
\ {n\ }:匹配前面的字符n次,簡稱=n次;注意:匹配的前面的字符必須是連續(xù)出現(xiàn)的
\ {m,n\ }:匹配前面的字符,最少m次,最多n次,簡稱m到n次之間
\ {,n\ }:匹配前面的字符,最多n次,簡稱小于等于n次
\ {n,\ }:匹配前面的字符,最少n次,簡稱大于等于n次
位置錨定:
^:以什么為開頭,在模式的左側(cè),例:^r 以r為開頭
$:以什么為結(jié)尾,在模式的右側(cè),例:r$ 以r為結(jié)尾
^r$:匹配整行,多一個(gè)字少一個(gè)字都不行,例:^root$ 只匹配root多一個(gè)字少一個(gè)字都不行
^$:匹配空行,只有空行才能匹配,空格都不行,另一種寫法:^[[:space:]]$
詞首錨定:\ < 或者\(yùn)b
詞尾錨定:\ > 或者\(yùn)b
通過\b的位置判斷
\
分組:
( )
\ |:表示邏輯或
擴(kuò)展正則:
擴(kuò)展正則和基本正則的功能一模一樣只是少了煩人的 \
使用擴(kuò)展正則必須加上 grep -E 或 egrep
柚子快報(bào)邀請碼778899分享:正則表達(dá)式
精彩內(nèi)容
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。