Day16 三劍客之正則表達(dá)式
什么是正則表達(dá)式(Reular rcpresssion RE)
發(fā)明了1套符號(hào),不同符有不同含義,方便我們?cè)谖募胁檎?過(guò)濾內(nèi)容
分類
基礎(chǔ)正則(BRE)
^ $ ^$ . * .* [] [^]
擴(kuò)展正則(ERE)
+ | () {} ?
通配符與正則的區(qū)別
名稱
作用
支持的命令
通配符
方便我們進(jìn)行查找文件
Linux下面大部分命令支持
正則
方便我們就行過(guò)濾(在文件中查找內(nèi)容)
Linux三劍客 開(kāi)發(fā)語(yǔ)言Python GO PHP JAVA
正則中的注意事項(xiàng)
注意中文符號(hào)
給grep egrep加上顏色(centos7自動(dòng)添加)
centos6需要自己添加別名
正則表達(dá)式符號(hào)含義
基礎(chǔ)正則(grep)
1.^ :以...開(kāi)頭的行
使用方法:^m ^oldboy
2.$:以...結(jié)尾的行
使用方法:m$ oldboy$
cat -A 顯示出所有的隱藏符號(hào)每行結(jié)尾有個(gè)$
3.^$:顯示空行 這一行種什么都沒(méi)有(排除空行)
4.(點(diǎn)):任意一個(gè)字符(單個(gè))
grep -o:顯示grep每次過(guò)濾出什么內(nèi)容 顯示grep執(zhí)行過(guò)程
不會(huì)匹配出空行
5.\ 轉(zhuǎn)義字符 脫掉馬甲 打回原形(去掉符號(hào)原有的特殊含義)
6:轉(zhuǎn)義字符系列
\n:回車/換行
\t:按tab
echo -e(支持轉(zhuǎn)義字符)
echo -n(不輸出每行結(jié)尾的回車)
- (*) :前一個(gè)字符連續(xù)出現(xiàn)0次或0次以上
000
0000000(連續(xù)出現(xiàn)的0)
oldboy(連續(xù)出現(xiàn)的字母)
8.(.*):所有 任意字符
特點(diǎn):貪婪性(能匹配多少就匹配多少 來(lái)者不拒)
在正則表達(dá)式表示所有(.*)或者是連續(xù)出現(xiàn)的時(shí)候 會(huì)產(chǎn)生貪婪性
9.[]:中括號(hào)
grep '[a-zA-Z]' 篩選大小寫
grep '[a-z,A-Z]' 篩選大小寫還有逗號(hào)
grep '[a-Z]' 篩選大小寫
grep '[0-Z]'篩選出所有數(shù)字與字母
符號(hào)放到[]外面
10.[^]:中括號(hào)取反
擴(kuò)展正則(egrep/grep -E)
1.+:前一個(gè)字符連續(xù)出現(xiàn)一次或多次
一般與[]一起使用
2.|:或者
3.():被括起來(lái)的內(nèi)容相當(dāng)于一個(gè)整體
用來(lái)表示后向引用(反向引用)
4.{}:連續(xù)出現(xiàn)
*:≥0次
+:≥1次
a{a,b} 最少a次最多b次 ≥a≤b
a{a,}最少出現(xiàn)a次≥a
a{,b}最多出現(xiàn)b次≤b
5.?:前一個(gè)字符出現(xiàn)0次或1次
'ab?c' b出現(xiàn)0次或一次
6.括號(hào)表達(dá)式:[[:alnum;]]大小寫字母和數(shù)字
查詢幫助
man grep
info grep