正則表達式

表達式是一種字符模式,用於在查找過程當中匹配製定的字符。正則表達式

元字符一般在Linux中分爲兩類:工具

Shell元字符,由Linux Shell進行解析;正則表達式元字符,由vi、grep、sed、awk等文本處理工具進行解析;正則表達式通常以文本行進行處理。google

 關於基本正則表達式和擴展正則表達式的一些用法:spa

基本正則表達式:orm

元數據 意義和範例
^word 搜尋以word開頭的行
例如:搜尋以#開頭的腳本註釋行
grep
n ^# regular.txt
word$ 搜尋以word結束的行
例如:搜尋以‘.’結束的行
grep
n '.$' regular.txt
. 匹配任意一個字符
例如:匹配ee之間有任意一個字符,能夠匹配eeeeaeeve,可是不匹配ee
grep
n 'e.e' regular.txt
\ 轉義字符
例如:搜尋’,’是一個特殊字符,在正則表達式中有特殊含義,必需要先轉義
grep 
\ regular.txt
* 前面的字符重複0到屢次
例如:匹配glegoglegooglegooogle等等
grep
n 'go*gle' regular.txt
[list] 匹配[]集合一系列字符中的一個
例如:匹配glgf
grep
n 'g[lf]' regular.txt
[n1-n2] 匹配[]集合一個字符範圍中的一個字符
例如:匹配數字字符
grep
n '[0-9]' regular.txt
[^list] 匹配[]集合一系列字符(字符集)之外的字符
例如:grep n '[^o]' regular.txt
匹配非o字符
\ 轉義字符
例如:搜尋’,’是一個特殊字符,在正則表達式中有特殊含義,必需要先轉義
grep
n '\' regular.txt
\<word 匹配以word開頭
例如:匹配以g開頭的單詞
grep
n \<g regular.txt
word\> 匹配以word結尾
例如:匹配以tion結尾的單詞
grep
n tion\> regular.txt
\(..\) 標籤匹配之後使用的字符,最大支持9
例如:用loveable引導前面作好的標籤
grep -n '\(love\)able\ler'
x\{n\} 前面的字符重複n
例如:匹配google
grep
n 'go\{2\}gle' regular.txt
x\{n,\} 前面的字符重複至少n
例如:匹配googlegooogle
grep
n 'go\{2,\}gle' regular.txt
x\{n1,n2\} 前面的字符重複n1n2
例如:匹配googlegooogle
grep
n 'go\{2,3\}gle' regular.txt

 

 

 

擴展正則表達式:ci

     grep通常狀況下支持基本正則表達式,能夠經過參數-E支持擴展正則表達式,另外grep單獨提供了一個擴展命令叫作egrep用來支持擴展正則表達式,這條命令和grep -E等價。雖然通常狀況下,基本正則表達式就夠用了。特殊狀況下,複雜的擴展表達式,能夠簡化字符串的匹配。字符串

     擴展正則表達式就是在基本正則表達式的基礎上,增長了一些元數據。io

元數據 意義和範例
x+

重複前面字符1到屢次
例如:匹配godgoodgoood等等字符串
grep 
nE 'go+d' regular.txt
table

x?

匹配01次前面的字符
例如:匹配gdgod
grep 
nE 'go?d' regular.txt
ast

word1|word2

或(or)的方式匹配多個字串  
例如:匹配god或者good
grep 
nE 'god|good' regular.txt

()

匹配整個括號內的字符串,原來都是匹配單個字符

例如:搜尋good或者glad
grep 
nE 'g(oo|la)' regular.txt

 



元數據     意義和範例

+       "重複前面字符1到屢次

例如:匹配godgoodgoood等等字符串

grep –nE go+d’ regular.txt"

?       "匹配01次前面的字符

例如:匹配gdgod

grep –nE ‘go?d’ regular.txt"

|       "或(or)的方式匹配多個字串 

例如:grep nE god|good regular.txt

匹配god或者good"

()       "匹配整個括號內的字符串,原來都是匹配單個字符

例如:搜尋good或者glad

grep –nE ‘g(oo|la)’ regular.txt"

()       "前面的字符重複0到屢次

例如:匹配glegoglegooglegooogle等等

grep –nE ‘go*gle’ regular.txt"

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息