正則表達(dá)式的定義:
正則表達(dá)式又稱正規(guī)表達(dá)式、常規(guī)表達(dá)式。在代碼中常簡(jiǎn)寫為 regex、regexp 或 RE。正則表達(dá)式是使用單個(gè)字符串來描述、匹配一系列符合某個(gè)句法規(guī)則的字符串,簡(jiǎn)單來說, 是一種匹配字符串的方法,通過一些特殊符號(hào),實(shí)現(xiàn)快速查找、刪除、替換某個(gè)特定字符串。
基礎(chǔ)正則表達(dá)式
以httpd配置文件為例
為了防止失誤對(duì)httpd的配置文件造成損壞,首先我們先拷貝一份httpd配置文件到別處。
1)、查找特定字符
可從httpd.txt文件中查找出特定字符“the” 所在位置
可以使用命令:grep -n 'the' httpd.txt
查找不包含“the”字符的行
可以使用命令:grep -vn 'the' httpd.txt
2)、利用中括號(hào)“[]”來查找集合字符
想要查找“then”與“they”這兩個(gè)字符串時(shí),可以發(fā)現(xiàn)這兩個(gè)字符串均包含“the”。此時(shí)執(zhí)行以下命令:grep -n 'the[ny]' httpd.txt
即可同時(shí)查找到“then”與“they”這兩個(gè)字符串。“[]”中無論有幾個(gè)字符,都僅代表一個(gè)字符,也就是說“[ny]”表示匹配“n”或者“y”。
查找包含重復(fù)單個(gè)字符“oo”時(shí)
可以使用命令:grep -n 'oo' httpd.txt
查找“oo”前面不是“r”的字符串
可以使用命令:grep -n '[^r]oo' httpd.txt
若不希望“oo”前面存在大寫字母,可以使用“grep –n'[^A-Z]oo'httpd.txt”命令實(shí)現(xiàn)
查找包含數(shù)字的行可以通過“grep –n '[0-9]' httpd.txt”命令來實(shí)現(xiàn)
3)、查找行首“^”與行尾字符“$”
查詢大寫字母開頭的行使用grep -n '^[A-Z]' httpd.txt
查詢“.”結(jié)尾的行使用grep -n '.$' httpd.txt
因?yàn)樾?shù)點(diǎn)(.) 在正則表達(dá)式中也是一個(gè)元字符(后面會(huì)講到),所以在這里需要用轉(zhuǎn)義字符“\”將具有特 殊意義的字符轉(zhuǎn)化成普通字符。
查詢空白行時(shí),執(zhí)行“grep –n ‘^$’ httpd.txt”命令
4)、查找任意一個(gè)字符“.”與重復(fù)字符“*”
在正則表達(dá)式中小數(shù)點(diǎn)(.)也是一個(gè)元字符,代表任意一個(gè)字符,例如,查找以r開頭,t結(jié)尾,中間兩個(gè)未知字符的字符串,可以使用命令grep -n 'r..t' httpd.txt。
查詢包含至少兩個(gè) o 以上的字符串,則執(zhí)行“grep –n ‘ooo*’ httpd.txt”命令即可。
5)、查找連續(xù)字符范圍“{}”
因?yàn)椤皗}”在 Shell 中具有特殊 意義,所以在使用“{}”字符時(shí),需要利用轉(zhuǎn)義字符“\”,將“{}”字符轉(zhuǎn)換成普通字符
(1)查詢兩個(gè) o 的字符
grep -n 'o\{2\}' httpd.txt
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。