正則表達式

一、定位符linux

語法 說明
^ 匹配字符開始的位置
$ 匹配字符串結尾的位置

二、選擇符
選擇符爲"|",能夠理解爲「或」的意思。正則表達式

示例 說明
hello|world 匹配字符串hello或者world

三、字符範圍
正則表達式用[]來限定字符範圍。shell

示例 說明
[abc] 查找含字符a、b、c的字符串
[^abc] 匹配除了a、b、c之外的字符
[a-zA-Z0-9] 查找a~z、A~Z、0~9

上述的連字符-表示的範圍遵循字符編碼的順序。
四、點字符與限定符app

語法 說明 示例
. 匹配一個任意字符 f.o,匹配foo,fto等
? 匹配前面的字符0次或者1次 hello?,匹配hell、hello
+ 匹配前面的字符1次或屢次 hello+,匹配hello、hellooooooo
* 匹配前面的字符0次或者屢次 hello*,匹配hell、hello(任意個o)
{n} 匹配前面的字符n次 hel{2}o,只能匹配hello
{n,} 匹配前面的字符最少n次 hel{2,}o,匹配hello,helll(任意個l)o
{n,m} 匹配前面的字符最少n次,最多m次 相似上面的語法,再也不舉例

五、小括號
小括號有兩個做用:改變做用範圍、分組編碼

示例 說明
改變做用範圍:(thir|four)th 匹配thirth、fourth
分組:(app){2} 匹配appapp

六、反斜槓
反斜槓的做用大體有:轉義、表示一些不能夠打印的字符、指定預約義的字符集等。blog

示例 說明
[\^\$\*\\] 表示匹配含有^$*\四種符號的字符串
\x27 用於linux匹配單引號。由於單引號是定界符,要匹配單引號須要用\x27進行匹配(避免被shell當成參數分隔符)
(a)(b)(c)\3 「\數字」表示對括號內字符串的引用,數字表示第幾個括號。例子爲匹配abcc
\d 任意十進制數字,至關於[0-9]
\D 任意非十進制數字
\w 任意單詞字符,至關於[a-zA-Z0-9]
\W 任意非單詞字符
\s 任意空白字符,如空格,水平製表符
\S 任意非空白字符
\b 單詞分界符
\B 非單詞分界符
\xhh 表示hh(十六進制2位數字)對應的ASCII字符,如\x61表示a

七、貪婪匹配與惰性匹配
貪婪匹配是指儘量多的匹配字符串,若是須要改爲惰性匹配,須要在限定詞後加"?"。
舉例: 若是想要匹配a****b這樣的字符串,那麼我若是輸入了a00jshbksb字符串,那麼匹配到的字符串是a00jshb仍是a00jshbksb呢?
在默認狀況下是貪婪匹配,則經過a.*b進行匹配則會匹配出a00jshbksb;若是我須要a00jshb這樣的匹配結果,則應該使用"?"進行控制,即便用a.*?b進行匹配。如圖:
字符串

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