詳解Linux--shell腳本之正則表達(dá)式
一、正則表達(dá)式的概念及特點(diǎn):
正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來表達(dá)對(duì)字符串的一種過濾邏輯。規(guī)定一些特殊語法表示字符類、數(shù)量限定符和位置關(guān)系,然后用這些特殊語法和普通字符一起表示一個(gè)模式,這就是正則表達(dá)式(Regular Expression)。
給定一個(gè)正則表達(dá)式和另一個(gè)字符串,我們可以達(dá)到如下的目的:
1. 給定的字符串是否符合正則表達(dá)式的過濾邏輯(稱作“匹配”);
2. 可以通過正則表達(dá)式,從字符串中獲取我們想要的特定部分。
正則表達(dá)式的特點(diǎn):
1. 靈活性、邏輯性和功能性非常的強(qiáng);
2. 可以迅速地用極簡(jiǎn)單的方式達(dá)到字符串的復(fù)雜控制。
3. 對(duì)于剛接觸的人來說,比較晦澀難懂。
由于正則表達(dá)式主要應(yīng)用對(duì)象是文本,因此它在各種文本編輯器場(chǎng)合都有應(yīng)用,小到著名編輯器EditPlus,大到Microsoft Word、Visual Studio等大型編輯器,都可以使用正則表達(dá)式來處理文本內(nèi)容。
二、正則表達(dá)式有三部分組成:
例如找出多有符合xxxxx@xxxx.xxx模式的字符串(也就是mail地址),要求x可以是字母、數(shù)字、下劃線、小數(shù)點(diǎn)、短劃線,email地址的每一部分可以有一個(gè)或多個(gè)x字符,例如abc@ed.com、1_2@789-6.54等,當(dāng)然,符合這個(gè)模式的并不一定是合法的mail地址,但至少可以做一次初步的篩選,篩選掉類似于a.b、c@d等不符合的字符串。再比如說,找出所有符合yyy.yyy.yyy.yyy模式的字符串(IP地址),要求y是0~9的數(shù)字,IP地址的每一部分可以有1~3個(gè)y字符。
1、字符類
字符類(Character Class):上例中的x和y,他們?cè)谀J街斜硎疽粋€(gè)字符,但是取值范圍是一類字符中的任意一個(gè)。
eg:
2、數(shù)量限定符
數(shù)量限定符(Quantifier): 郵件地址的每一部分可以有一個(gè)或多個(gè)x字符,IP地址的每一部 分可以有1-3個(gè)y字符
eg:
3、位置限定符
位置限定符(Anchor):描述各種字符類以及普通字符之間的位置關(guān)系,例如郵件地址分三部分,用普通字符@和.隔 開,IP地址分四部分,用.隔開,每一部分都可以用字符類和數(shù)量限定符 描述。為了表示位置關(guān)系,需要位置限定符的概念,將在下面介紹。
eg:
4、特殊字符
eg:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Shell時(shí)間運(yùn)算及時(shí)間差計(jì)算方法
這篇文章主要介紹了Shell時(shí)間運(yùn)算及時(shí)間差計(jì)算方法,本文講解了時(shí)間時(shí)間加減運(yùn)算以及時(shí)間差計(jì)算方法,需要的朋友可以參考下2015-07-07NetCat工具命令介紹及遠(yuǎn)程文件傳輸實(shí)現(xiàn)
這篇文章主要為大家介紹了NetCat工具命令的介紹以及遠(yuǎn)程文件傳輸實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03shell腳本實(shí)現(xiàn)的網(wǎng)站日志分析統(tǒng)計(jì)(可以統(tǒng)計(jì)9種數(shù)據(jù))
這篇文章主要介紹了shell腳本實(shí)現(xiàn)的網(wǎng)站日志分析統(tǒng)計(jì),可以統(tǒng)計(jì)9種數(shù)據(jù),如訪問量、帶寬、訪客量、IP統(tǒng)計(jì)、搜索引擎等,需要的朋友可以參考下2014-05-05shell腳本運(yùn)行5秒后自動(dòng)退出的代碼
shell腳本運(yùn)行5秒自動(dòng)退出的代碼,供大家學(xué)習(xí)參考2013-02-02