正則表達式(一)徹底理解正則表達式的元字符

正則表達式分爲元字符文字。正則表達式的元字符擁有非常強大的描述能力。

行的起始和結束

  • 脫字符號^(代表一行的開始)
  • 美元符號$(代表一行的結束)
^cat //匹配以cat開頭的行
cat$ //匹配以cat結尾的行

字符組

  • [ ](用來匹配若干字符之一)
  • [^ ](用來匹配除若干字符以外的字符之一)

用來匹配若干字符之一,主要這句話的兩個限定詞,"字符"和“之一”。每個中括號只匹配一個字符,被匹配的字符位置是中括號中字符的其中一個。注意:[]還支持匹配範圍,例如[0-9]可以匹配0-9之間的數字,但是注意-不能放在[]開始的位置 ,那樣-會被當做字符來處理。

gr[ea]p //grep或者grap都可以被匹配

匹配任意字符

  • .(匹配任意字符)

正則表達式是用來匹配任意字符的符號是英文狀態下的一個點。(在linux下處理文件時,通常會用*來匹配文件名。或者寫sql時,會用select * 用於查詢全部字段,有時也用於而在正則表達式裏,)

03.19.23 //03-19-23或者03/19/23都可以被匹配

多選結構

  • | (或)

將不同的子表達式組合成一個總表達式。只要能夠匹配任意一個表達式。子表達式又被稱作多選分支。

//匹配grey或者gray的幾種寫法:
grey|gray 
gr(e|a)y 
gr[ea]y

//注意:gr[e|a]y這種寫法時,|並沒有作爲“或”的意思,而是作爲了一個可選字符。

單詞分界符

  • \< (匹配單詞的開頭,可以理解爲單詞版的^)
  • \>(匹配單詞的結束,可以理解爲但此版的$)

單詞分界符用於解決:“期望匹配的單詞包含在另一個單詞中”。注意:<和>並不是元字符,只有他們跟\結合起來時,才具有相應的意義。 <和\>也被叫做“元字符序列”。

\<cat //匹配以cat開頭的單詞

初步總結前面提到的元字符

這裏寫圖片描述

這裏寫圖片描述
這裏寫圖片描述

下面繼續列舉元字符:

量詞(quantifiers)

  • ?(可選項,把?放在一個字符後面,表示無論這個字符是否出現都可以被匹配。)
  • +(計數,緊鄰元素出現一次或多次)
  • *(緊鄰元素出現任意次,也可以不出現)
  • {min,max}(計數區間,可以設置重複次數)
colou?r //可以匹配color或者colour
[a-zA-Z]{1,5} //匹配出現1-5個字母

這裏寫圖片描述

轉義字符

  • \

用於解決匹配的字符本身是元字符的情況。

\.   //用於匹配字符點。

一些小例子

匹配由字母、數字、下劃線組成的字符串,但是不能以數字開頭[a-zA-Z_][a-zA-Z0-9_]*

匹配雙引號內的字符串"[^"]*"

匹配美元金額\$[0-9]+(\.[0-9]*)?

元字符總結

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章