正則佐料『元字符』

正則佐料『元字符』

標籤: 元字符


所謂的元字符,即爲特殊字符,表示有特殊的含義,要學好正則表達式,首先就得掌握好元字符。

^ 元字符

^表示匹配字符串的開頭位置,也就是說,它匹配的是一個位置。如果要匹配^字符本身的話,需要轉義,即\^。接下來我們便來舉例說明:
在這裏插入圖片描述
如上圖所示,當在正則表達式輸入框中輸入^的時候,會匹配到每行字符串開頭的那個位置(紅色豎線)。
^在集合[]裏面的不同位置可能表示不同的含義,比如[^a]表示匹配除了小寫字母a之外的任意一個字符,而[a^]表示匹配a^中的其中一個字符。如下圖所示:

^放在[]裏面的第一個位置的時候,它表示的意思[^a-z],即排除a到z之間的所有小寫字母的意思;放在[]裏面的其他位置,則沒有特殊含義[a-z^0-9]

$元字符

$表示匹配字符串的結尾位置,它跟^一樣都是匹配位置,只是^匹配的是開頭的位置,而$匹配的是結尾的位置。如果只是想匹配$字符,則需要轉義,即\$

[ 元字符

[表示一個字符集的開始,需要配合]來使用,比如[a-z]表示匹配26個小寫字母的一個集合,可以匹配任意一個小寫字母。
在這裏插入圖片描述

() 元字符

左右兩個小括號是兩個元字符,但()必須在一起成對使用纔可以,它表示一個子表達式,即一個分組,一般表示捕獲組。比如([0-9])表示匹配0到9之間的任意一個數字,且會把匹配到的這個數字保存到捕獲組1中,以便於後面引用或取值。
在正則表達式中,你不能單獨寫左括號或右括號,必須成對出現纔是正確的,否則會報錯。但如果你把()這兩個元字符轉義成普通的字符,就無所謂了,例如\(或者\)
在這裏插入圖片描述

{ 元字符

{表示限定符,是用來表示量詞的,它一般情況下必須和}成對配合使用,不然會報錯。例如[0-9]{2}表示一次匹配兩個連在一起的數字,而[0-9]{1,2}表示匹配一次可以匹配1個數字或者兩個數字。

提示:{0,}*等價,{1,}+等價,{0,1}?等價。後面說到量詞的相關知識時,會舉例說明。

在這裏插入圖片描述

+ 元字符

+表示匹配它前面的子表達式一次及以上。例如,[0-9]+表示它左邊的子表達式[0-9]需要至少匹配一次,而([0-9]{2})+表示它左邊的子表達式([0-9]{2})必須匹配一次及以上,也就是說,它需要匹配長度爲偶數的數字字符串。
在這裏插入圖片描述

* 元字符

*表示匹配它左邊的子表達式0次或多次。這樣一來,它就有可能匹配到空字符串,也就是匹配到字符之間的間隙,即字符和字符之間的那個位置。
在這裏插入圖片描述

? 元字符

?表示它左邊的子表達式可以出現0次或1次。例如,[a-z][0-9]?表示一個小寫字母,後接一個數字0次或1次,也可以寫成[a-z][0-9]{0,1}
在這裏插入圖片描述

. 元字符

.一般情況下能匹配除了換行符之外的其他字符,在某些情況下,可以匹配所有字符。
在這裏插入圖片描述

\ 元字符

\表示轉義字符,它可以把一個普通字符轉義成特殊字符,也可以把一個特殊字符轉義爲普通字符。例如,d表示小寫字母d,但\d表示數字0到9的集合,即[0-9]\s\w等等也類似。如果要表示\,需要寫成\\
在這裏插入圖片描述

| 元字符

豎線|表示或者的關係,表示可選的分支。例如,[1-3]可表示爲(1|2|3)he(ll|r)0可以同時匹配hello和hero
在這裏插入圖片描述

- 連接符

雖然連接符-不是元字符,但當它放在[]集合裏面的時候,有可能會影響整個字符集的元素範圍。例如,[1-3]表示匹配1或2或3,但[-13]表示匹配-或1或3,特別是對字符之間的範圍不太肯定的時候,如果只是要匹配-,那麼當它在[]裏面的時候,最好轉義一下,[\-]

-放在集合[]裏面,且是放在兩個字符之間,例如[a-z][1-3]這種的話,它是表示一個集合範圍;而當-前面和後面沒有字符的時候,它就表示它本身。如果-沒有在[]裏面,則它沒有特殊含義。當要表示-本身的時候,若-是在[]裏面,最好是放在集合的開始位置[-a-z]、否則最好轉義一下[a-z\-]

在這裏插入圖片描述


本次內容相對比較簡單,只是做個簡單的介紹,後面會針對某個知識點做更詳細的介紹,希望對你有幫助。

微信公衆號:Cooking Regex
在這裏插入圖片描述

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