基本概念
字面量
如圖所示,字面量就是你想要匹配的字符串.

字符組(方括號(hào)表達(dá)式)
如圖所示,字符組由字符組起始符 '[' ,要匹配的模式與字符組結(jié)束符 ']'

錨位符
錨位符由脫字符(^)與美元符號(hào)($)構(gòu)成.
脫字符將會(huì)使后面的字面量,字符組等,匹配到一段字符串的開(kāi)頭.而美元符號(hào)則會(huì)使它前面的字面量,字符組等,匹配到一段字符串的結(jié)尾.
如圖所示,普通匹配可以直接匹配到2334中233.然而使用了脫字符的正則表達(dá)式則不能匹配到2334中的233,因?yàn)?符號(hào)前面的是數(shù)字3,那么匹配的字符串末尾也必須要是數(shù)字三,錨位符的主要作用就是用來(lái)指定字符串的開(kāi)頭與結(jié)尾的.


量詞
量詞是類似于循環(huán)一樣的東西.諸如{m,n},*,+這些就屬于量詞.
例如\d{2,3},它就表示匹配2到3次數(shù)字.而\d*則表示匹配0到多次數(shù)字
捕獲分組,向后引用與非捕獲分組
捕獲分組我舉三個(gè)例子,就能明白了.
(\d)就是一個(gè)分組,在正則中,可以由\1代指分組1.

(\d)(\D),在這里面(\D)是分組2,由\2代指.

(\d(\D))(\d)在這里,最外層的\d是分組1,而在內(nèi)層的\D則是分組2,[0-9]則是分組3.
可以看出分組是按照從外往內(nèi),從左往右進(jìn)行劃分的.

所謂向后引用,則是在建立分組后,由\1,\2...\n這樣的關(guān)鍵字進(jìn)行引用的.
非捕獲分組則是不會(huì)被捕獲的分組,即無(wú)法被\1,\2這樣的向后引用關(guān)鍵字所指代的分組.
例如: (?:\d),此時(shí)使用\1就無(wú)效了.
這里有一個(gè)容易讓人誤會(huì)的地方,我舉個(gè)例子:
例如: (\d)\1
在這里 \1并不是代表字符組\d,而是代表\d匹配的值,例如\d匹配到了2,那么\1就代表2.
選擇
形如T|t這樣的形式就是選擇,它會(huì)在T與t之間選擇一個(gè)進(jìn)行匹配
