新聞中心
正則表達(dá)式(Regular Expression)是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為”元字符”)。正則表達(dá)式使用單個(gè)字符串來(lái)描述、匹配一系列匹配某個(gè)句法規(guī)則的字符串,本篇文章重點(diǎn)為大家講解一下Linux中正則表達(dá)式。

十多年的新疆網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整新疆建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“新疆網(wǎng)站設(shè)計(jì)”,“新疆網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
我們可以使用 grep 命令來(lái)測(cè)試我們的正則表達(dá)式,grep命令使用正則表達(dá)式去嘗試匹配指定文件的每一行,并將至少有一處匹配表達(dá)式的所有行顯示出來(lái)。
grep 命令說(shuō)明:
常用的選項(xiàng)OPTION:
-c 顯示匹配到的行數(shù)之和
-o 僅顯示匹配本身
-v 顯示非匹配,取反
-i 不區(qū)分大小寫
-E 支持?jǐn)U展表達(dá)式
-q 靜默模式
-n 顯示匹配到的行的行號(hào)
-A 2 顯示匹配到的行的后2行
-B 2 顯示匹配到的行的前2行
-C 2 顯示匹配到的行的前后2行
-V 顯示版本信息
使用語(yǔ)法:
grep [OPTION]… PATTERN [FILE]…
grep “[匹配字符]匹配出現(xiàn)次數(shù)” /PATH/TO/SOMEFILE
字符匹配:
. 任意單個(gè)字符
[] 指定范圍內(nèi)的單個(gè)字符
[^] 指定范圍外的的單個(gè)字符,取反
.* 任意長(zhǎng)度的任意字符
[:alnum:] 所有的字母和數(shù)字
[:alpha:] 所有的字母
[:blank:] 所有呈水平排列的空白字符
[:cntrl:] 所有的控制字符
[:digit:] 所有的數(shù)字
[:graph:] 所有的可打印字符,不包括空格
[:lower:] 所有的小寫字母
[:print:] 所有的可打印字符,包括空格
[:punct:] 所有的標(biāo)點(diǎn)字符
[:space:] 所有呈水平或垂直排列的空白字符
[:upper:] 所有的大寫字母
[:xdigit:] 所有的十六進(jìn)制數(shù)
[=字符=] 所有和指定字符相等的字符
匹配次數(shù) :
* 其前面的字符出現(xiàn)任意次,0次或1次,或者多次
\? 其前面的字符出現(xiàn)0次或1次
\+ 其前面的字符出現(xiàn)1次或多次,至少出現(xiàn)1次
\{m\} 指定字符出現(xiàn)次數(shù)
\{m,n\} 至少出現(xiàn)m次,至多出現(xiàn)n次,范圍取次
\{0,n\} 出現(xiàn)最多n次
\{m,\} 出現(xiàn)最少m次
位置錨定:
^ 行首錨定,用于模式的最左側(cè)
$ 行尾錨定,用于模式的最右側(cè)
^……$ 整行, ^$ 空白行,^[[:space:]]*$ 空行或者有空白字符的行
\ 或 \b 詞尾錨定
\ 精確錨定單詞
分組及引用:
\{xy\}*ab 表示多個(gè)字符出現(xiàn)0,1或多次。 \ 在這里作為轉(zhuǎn)義符使用
\(abcd\){1,3} 表示包含abcd字符串最少出現(xiàn)1次,最多出現(xiàn)3次
\(1..2\).* \1 \1 是指引用從左側(cè)起第一個(gè)()之間的字符
\(1..2\).* \(3..4\)\2 \2 是指引用從左側(cè)起第二個(gè)()之間的字符
\(1..2\).* \(3..4\).*\(5..6\)\3 \3 是指引用從左側(cè)起第三個(gè)()之間的字符
使用實(shí)例:
查看顯示 /etc/fstab 文件以 # 注釋開(kāi)頭的行:
這里也可以不加【】:
-v 取反,即顯示不以#注釋的行,-o 選項(xiàng)為只顯示匹配到的字符串:
顯示 /etc/fstab 文件非注釋的行,錨定行首為 # 注釋的行,取反:
顯示 /etc/fstab 文件以#號(hào)開(kāi)頭,后面跟一個(gè)空格,后面為任意長(zhǎng)度任意字符的行, -c 選項(xiàng)可以統(tǒng)計(jì)匹配到的行數(shù):
在 /tmp/fstab 文件中加入多個(gè)空白行,以#號(hào)開(kāi)頭,后面僅跟一個(gè)空格,且不以空白符結(jié)尾的行:
顯示 /tmp/sshd_config 文件中不以#注釋、空白行以及有空白字符的行:
顯示 /etc/passwd 文件中用戶名和用戶SHELL為一樣的行:
顯示 /tmp 目錄下,以非字母開(kāi)頭,后面跟一個(gè)字母,后面為任意長(zhǎng)度任意字符的文件或者目錄:
顯示 /tmp 目錄下以非字母開(kāi)頭,后面僅跟一個(gè)字母,然后以非字母結(jié)尾的文件和目錄:
顯示 /etc 目錄下以p開(kāi)頭不以數(shù)字結(jié)尾的所有文件和目錄:
顯示 ip a 或者 ifconfig 命令中的IP地址,-E 選項(xiàng)為支持?jǐn)U展正則表達(dá)式:
-l 選項(xiàng)可以列出包含字符串的文件列表:
-w 精確錨定字符串,相當(dāng)于 :
egrep 的使用方法跟 grep 基本一致,不需要轉(zhuǎn)義符 \ 看起來(lái)更簡(jiǎn)潔:
當(dāng)前文章:詳解Linux正則表達(dá)式
文章鏈接:http://www.dlmjj.cn/article/cdoopjh.html


咨詢
建站咨詢
