溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux的正則表達(dá)式實(shí)例分析

發(fā)布時(shí)間:2022-02-18 09:19:55 來(lái)源:億速云 閱讀:169 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下Linux的正則表達(dá)式實(shí)例分析的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

正則表達(dá)式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來(lái)檢查一個(gè)串是否含有某種子串、將匹配的子串替換或者從某個(gè)串中取出符合某個(gè)條件的子串等。

Linux的正則表達(dá)式實(shí)例分析

元字符通常在Linux中分為兩類:Shell元字符,由Linux Shell進(jìn)行解析; 正則表達(dá)式元字符,由vi/grep/sed/awk等文本處理工具進(jìn)行解析; 正則表達(dá)式一般以文本行進(jìn)行處理,在進(jìn)行下面實(shí)例之前,先為grep命令設(shè)置–color參數(shù):

 class="">$ alias grep='grep --color=auto'

這樣每次過(guò)濾出來(lái)的字符串都會(huì)帶色彩了。

在開(kāi)始之前還需要做一件事情,就是創(chuàng)建一個(gè)測(cè)試用的re-file文件,內(nèi)容如下:

class="">$ cat re-file
I had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the
groove.
class="">$ cat linux.txt
Linux is a good
god assdxw bcvnbvbjk
greatttttt  wexcvxc
operaaaating  dhfghfvx
gooodfs awrerdxxhkl
gdsystem awxxxx
glad
good

正則表達(dá)式元字符

Linux的正則表達(dá)式實(shí)例分析

特殊的元字符

Linux的正則表達(dá)式實(shí)例分析

擴(kuò)展的正則表達(dá)式

Linux的正則表達(dá)式實(shí)例分析
教你3分鐘搞定Linux正則表達(dá)式教你3分鐘搞定Linux正則表達(dá)式

實(shí)操

匹配以love開(kāi)頭的所有行

class="">$ grep '^love' re-file
love, how much I adore you. Do you know

匹配love結(jié)尾的所有行

class="">$ grep 'love$' re-file
clover. Did you see them?  I can only hope love.

匹配以l開(kāi)頭,中間包含兩個(gè)字符,結(jié)尾是e的所有行

class="">$ grep 'l..e' re-file
I had a lovely time on our little picnic.
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the

匹配0個(gè)或多個(gè)空行,后面是love的字符

class="">$ grep ' *love' re-file
I had a lovely time on our little picnic.
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.

匹配love或Love

class="">$ grep '[Ll]ove' re-file  # 對(duì)l不區(qū)分大小寫I had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.

匹配A-Z的字母,其次是ove

class="">$ grep '[A-Z]ove' re-file
Lovers were all around us. It is springtime. Oh

匹配不在A-Z范圍內(nèi)的任何字符行,所有的小寫字符

class="">$ grep '[^A-Z]' re-fileI had a lovely time on our little picnic.Lovers were all around us. It is springtime. Ohlove, how much I adore you. Do you knowthe extent of my love? Oh, by the way, I thinkI lost my gloves somewhere out in that field ofclover. Did you see them?  I can only hope love.is forever. I live for you. It's hard to get back in thegroove.

匹配love

class="">$ grep 'love\.' re-fileclover. Did you see them?  I can only hope love.

匹配空格

 class="">$ grep '^$' re-file

匹配任意字符

class="">$ grep '.*' re-fileI had a lovely time on our little picnic.Lovers were all around us. It is springtime. Ohlove, how much I adore you. Do you knowthe extent of my love? Oh, by the way, I thinkI lost my gloves somewhere out in that field ofclover. Did you see them?  I can only hope love.is forever. I live for you. It's hard to get back in thegroove.

前面o字符重復(fù)2到4次

class="">$ grep 'o\{2,4\}' re-filegroove.

重復(fù)o字符至少2次

class="">$ grep 'o\{2,\}' re-filegroove.

重復(fù)0字符最多2次

class="">$ grep 'o\{,2\}' re-fileI had a lovely time on our little picnic.Lovers were all around us. It is springtime. Ohlove, how much I adore you. Do you knowthe extent of my love? Oh, by the way, I thinkI lost my gloves somewhere out in that field ofclover. Did you see them?  I can only hope love.is forever. I live for you. It's hard to get back in thegroove.

重復(fù)前一個(gè)字符一個(gè)或一個(gè)以上

class="">$ egrep "go+d" linux.txt
Linux is a good
god assdxw bcvnbvbjk
gooodfs awrerdxxhkl
good#####0個(gè)或者一個(gè)字符ansheng@Ubuntu:/tmp$ egrep "go?d" linux.txt
god assdxw bcvnbvbjk
gdsystem awxxxx

或,查找多個(gè)字符串

class="">$ egrep "gd|good" linux.txt
Linux is a good
gdsystem awxxxx
good

分組過(guò)濾匹配

class="">$ egrep "g(la|oo)d" linux.txt
Linux is a good
glad
good

以上就是“Linux的正則表達(dá)式實(shí)例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI