正則表達(dá)式是一類元字符,而 正則表達(dá)式有基本正則表達(dá)式和擴(kuò)展正則表達(dá)式兩大類,但是相信有很多小伙伴們都不是非常了解正則表達(dá)式的,那么我們現(xiàn)在就讓錯新小編帶你了解正則表達(dá)式。
所謂的正則表達(dá)式,就是用一類元字符(不表示本身意義,而表示統(tǒng)配或其他意義),組
合其他字符所編數(shù)出來的,能夠匹配符合條件的字符。
? 下面給大家介紹一下基本正則表達(dá)式和擴(kuò)展正則表達(dá)式的一些常用的字符,
基本正則表達(dá)式:
? ^??????? 錨定行首的符合條件的內(nèi)容
? $??????? 錨定行尾的符合條件的內(nèi)容
? ^$?????? 表示空白行
? .??????? 匹配任意單個字符
? *??????? 匹配進(jìn)挨在其前面的字符任意次
? .*?????? 匹配任意長度的任意字符
? []?????? 匹配指定范圍內(nèi)的任意字符
? [^]????? 匹配指定范圍外的任意字符
? /??????? 匹配緊挨在其前面的字0次或1次
? /{m,n/}? 匹配其前面的字符至少m次,至多n次
? /{0,n/}? 匹配其前面的字符0-n次
? /{m,/}?? 匹配其前面的字符至少m次
? /{m/}??? 精確匹配m次
? /<?????? 錨定詞首
? />?????? 錨定詞尾
? /(/)???? 分組
grep的常用選項
? --color=auto?? 自動為匹配字符添加顏色
? -v???????????? 反向選取,只顯示不符合模式的行
? -o???????????? 只顯示被模式匹配但的字符串,而不是整個行
? -i???????????? 不區(qū)分字符大小寫
? -A? n????????? 顯示匹配到的行時,順便顯示其后面的n個行
? -B? n????????? 顯示前面的n行
? -C? n????????? 顯示后面的n行
? -E???????????? 使用擴(kuò)展的正則表達(dá)式??? grep -E = egrep
擴(kuò)展正則表達(dá)式(在這里至列出不同之處)
?? ???????????? 出現(xiàn)了0次或1次 正則表達(dá)式為/?
?? {m,n}???????? 匹配前邊字符最少m次,最多n次
?? ()??????????? 分組,用法與grep類似
?? a|b?????????? 二選一
1,錨定/etc/passwd文件中行首為root的行
???? grep? “^root” /etc/passwd
2,錨定/etc/passwd文件行尾為sh的行
???? grep “sh$” /etc/passwd
3,查找空白行
???? grep “^$” /etc/passwd
4,匹配a后面跟了任意單個字符的行
???? grep “a.” /etc/passwd
5,匹配a后面跟了任意長度字符的行
???? grep “a*” /etc/passwd
4,匹配a后面跟了任意長度的任意字符,再跟上b的行
???? grep “a.*b” /etc/passwd
5,匹配a后面跟了任意個一數(shù)字后又跟了任意一個字母的行
???? grep “a[0-9][a-zA-Z]” /etc/passwd
6,匹配a后面跟了任意一個數(shù)字或字母的行
???? grep “a[0-9a-zA-Z]” /etc/passwd
7,匹配0或1個a后面跟了個b的行
???? grep “a/?b” /etc/passwd
8,匹配最少一個a,最多3個a后面跟了一個b的行
???? grep “a/{1,3/}b” /etc/passwd
9,錨定單詞admin的行
???? grep “/<admin/>” /etc/passwd
10,匹配自少出現(xiàn)一次ad,最多出現(xiàn)3次ad的行
???? grep “/(ab/)/{1,3/}” /etc/passwd
以上內(nèi)容就是小編帶你了解正則表達(dá)式的文章,其實正則表達(dá)式的技巧有很多,咱只學(xué)最最實用的。如果你也有同樣的小技巧,就拿出來大家一起分享吧
新聞熱點
疑難解答