a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Regex > 正文

詳解linux正則表達式(基礎正則表達式+擴展正則表達式)

2020-03-16 20:50:42
字體:
來源:轉載
供稿:網友

正則表達式應用非常廣泛,例如:php,Python,java等,但在linux中最常用的正則表達式的命令就是grep(egrep),sed,awk等,換句話 說linux三劍客要想能工作的更高效,就一定離不開正則表達式的配合。

1、什么是正則表達式?

簡單的說,正則表達式就是為處理大量的字符串而定義的一套規則和方法。通過定義的這些特殊符號的輔助,系統管理員就可以快速過濾、替換或者輸出需要的字符串。linux正則表達式一般以行為單位處理的。

2、為什么要學正則表達式

在企業工作中,我們每天做的linux運維工作中,時刻都會面對大量帶有字符串的文本配置、程序、命令輸出及日志文件等,而我們經常會有迫切的需要從大量的字符串內容中查找符合工作需要的特定字符串,這就要靠正則表達式,因此,可以說正則表達式就是為過濾這樣字符串的需求而生的!

3、容易混淆的兩個注意事項:

1)linux正則表達式一般是以行為單位處理的。

2)正則表達式和我們常用的通配符特殊字符是有本質區別的,例如:ls *.txt 這里的*就是通配符(表示所有),不是正則表達式。

注意字符集問題:

確保字符集:export LC_ALL=C

---------------------------------------------

基礎正則表達式+擴展正則表達式含義解釋:

---------------------------------------------

.   代表且只能代表任意一個字符(不包括空行)
*   重復前面任意0個或多個字符
.*   匹配所有字符。(包括空行)
sed -ri 's#(.*)#/1#g' bqh.txt
把前面正則匹配的括號內的結果,在后面用/1取出來操作。
^   表示以什么開頭,^bqh 以bqh開頭
$   是以什么結尾
^$   表示空行。
/ 例/.   就只代表點本身,轉義符號,讓有著特殊身份移動的字符,脫掉馬甲,還原原型/$
^.*   以任意多個字符開頭。
.*$   以任意多個字符結尾。
(.*)   從第一字符匹配,到空格停止,
[abc]   匹配字符集合內的任意一個字符【a-zA-Z】
[^abc]   匹配不包括^后的任意字符的內容;中括號里的^為取反,注意和以...開頭區別。
a/{n,m/}   重復n到m次,前一個重復的字符。如果有用egrep/sed -r 可以去掉斜線。
/{n,/}   重復至少n次,前一個重復的字符。如果有用egrep/sed -r 可以去掉斜線。
/{n/}   重復n次,前一個重復的字符。如果有用egrep/sed -r 可以去掉斜線。
①^word   搜索以word開頭的;vi ^ 一行的開夠
②word$   搜索以word結尾的;vi $ 一行的開頭
③^$   表示空行。
擴展的正則表達式:ERP(egrep或grep -E)

+   重復一個或一個以上前面的字符
? 復0個或一個0前面的字符
|   用或的方式查找多個符合的字符串
()  找出“用戶組”字符串

實戰舉例:

linux,正則表達式

^m 搜索以m開頭的

linux,正則表達式

p$搜索以p結尾的

 linux,正則表達式

^$表示空號

 linux,正則表達式

去掉空行:grep –v “^$” bqh.log

查看去掉的后的空行內容:grep -vn “^$” bqh.log 

 linux,正則表達式

.   代表且只能代表任意一個字符(不包括空行)

linux,正則表達式

查找帶0的字符:

linux,正則表達式

.*   匹配所有字符。(包括空行)

linux,正則表達式

查找以.結尾的字符:

錯誤方法:grep ".$" bqh.log

linux,正則表達式

正確方法:

grep “/.$” bqh.log 

linux,正則表達式

注意:/. 就只代表點本身,轉義符號,讓有著特殊身份移動的字符,脫掉馬甲,還原原型/$

*   例1*重復1個或多個前面的一個字符。

grep –o “1*” bqh.log  //-o精確匹配

linux,正則表達式

^.*      以任意多個字符開頭。

linux,正則表達式

.*$      以任意多個字符結尾。

linux,正則表達式

[abc]    匹配字符集合內的任意一個字符【a-zA-Z】

linux,正則表達式

匹配字符集合內的a-z任意一個小寫字符:

linux,正則表達式

[^abc] 匹配不包括^后的任意字符的內容;中括號里的^為取反,注意和以...開頭區別

linux,正則表達式

匹配非數字的任意字符:

linux,正則表達式

a/{n,m/}  重復n到m次,前一個重復的字符。如果有用egrep/sed -r /grep -E可以去掉斜線。

linux,正則表達式

/{n,/}    重復至少n次,前一個重復的字符。如果有用egrep/sed -r 可以去掉斜線。

linux,正則表達式

/{n/}    重復n次,前一個重復的字符。如果有用egrep/sed -r 可以去掉斜線。


linux,正則表達式

linux,正則表達式

注意:egrep,grep -E或sed -r過濾一般特殊字符可以不轉義。多使用參數。

 ---------------------------------------------------------------------------------

擴展的正則表達式:ERP(egrep或grep -E)

+   重復一個或一個以上前面的字符

linux,正則表達式

?  復0個或一個0前面的字符

linux,正則表達式

|   用或的方式查找多個符合的字符串

linux,正則表達式

()  找出“用戶組”字符串

linux,正則表達式

總結

以上所述是小編給大家介紹的詳解linux正則表達式(基礎正則表達式+擴展正則表達式),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到正則表達式頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久99国产精品久久99大师 | 国产黄色免费网站 | 久久久久国产 | 手机看片1| 亚洲一区二区三区免费在线 | 欧美成人a交片免费看 | 日韩免费高清视频 | 精品国产一区二区三区久久久蜜月 | 国产福利片在线观看 | 免费黄色看片 | 中文字幕在线视频网 | 涩涩涩涩涩涩涩 | 成人欧美一区二区三区黑人 | 国产精品视频一区二区三区 | 伊人久久婷婷 | 91麻豆精品国产91久久久更新时间 | 91蜜桃视频 | 中文字幕亚洲字幕一区二区 | 久久99精品久久久久国产越南 | 夜夜操天天操 | 久久久久久久久久久久国产精品 | 国产精品一区二区三区在线 | 欧美一级一区 | 国产精品国色综合久久 | 国产精品视频入口 | 毛片国产 | www.亚洲一区二区 | 国产精品一区二区免费 | 日韩欧美在线观看视频 | 欧美激情自拍偷拍 | 亚洲最黄视频 | 久久久久91| 91精品麻豆 | 亚洲精品日韩综合观看成人91 | 亚洲一区二区免费在线观看 | 国产日韩免费 | 黄色影视在线 | 亚洲午夜在线 | 国产精品久久一区 | 日韩亚洲精品在线观看 | 色综合一区 |