我們已經(jīng)知道了一些很有用的正則表達(dá)式的元字符了,比如\b,.,*
,還有\d.
當(dāng)然正則表達(dá)式中包含的元字符多種多樣,比如\s
匹配任意的空白符,包括空格,制表符(Tab),換行符,中文全角空格等。\w
匹配字母或數(shù)字或下劃線或漢字等。
下面來(lái)看看更多的例子:
\ba\w*\b
匹配以字母a
開(kāi)頭的單詞——先是某個(gè)單詞開(kāi)始處(\b
),然后是字母a
,然后是任意數(shù)量的字母或數(shù)字(\w*
),最后是單詞結(jié)束處(\b
)。
\d+
匹配1個(gè)或更多連續(xù)的數(shù)字。這里的+
是和*
類(lèi)似的元字符,不同的是*
匹配重復(fù)任意次(可能是0次),而+
則匹配重復(fù)1次或更多次。
\b\w{6}\b
匹配剛好6個(gè)字符的單詞。
代碼 | 說(shuō)明 |
---|---|
. | 匹配除換行符以外的任意字符 |
\w | 匹配字母或數(shù)字或下劃線 |
\s | 匹配任意的空白符 |
\d | 匹配數(shù)字 |
\b | 匹配單詞的開(kāi)始或結(jié)束 |
^ | 匹配字符串的開(kāi)始 |
$ | 匹配字符串的結(jié)束 |
元字符^
(和數(shù)字6在同一個(gè)鍵位上的符號(hào))和$
都匹配一個(gè)位置,這和\b
有點(diǎn)類(lèi)似。^
匹配你要用來(lái)查找的字符串的開(kāi)頭,$
匹配結(jié)尾。這兩個(gè)代碼在驗(yàn)證輸入的內(nèi)容時(shí)非常有用,比如一個(gè)網(wǎng)站如果要求你填寫(xiě)的QQ號(hào)必須為5位到12位數(shù)字時(shí),可以使用:^\d{5,12}$
。
這里的{5,12}
和前面介紹過(guò)的{2}
是類(lèi)似的,只不過(guò){2}
匹配只能不多不少重復(fù)2次,{5,12}
則是重復(fù)的次數(shù)不能少于5次,不能多于12次,否則都不匹配。
因?yàn)槭褂昧?code>^和$
,所以輸入的整個(gè)字符串都要用來(lái)和\d{5,12}
來(lái)匹配,也就是說(shuō)整個(gè)輸入必須是5到12個(gè)數(shù)字,因此如果輸入的QQ號(hào)能匹配這個(gè)正則表達(dá)式的話,那就符合要求了。
和忽略大小寫(xiě)的選項(xiàng)類(lèi)似,有些正則表達(dá)式處理工具還有一個(gè)處理多行的選項(xiàng)。如果選中了這個(gè)選項(xiàng),^
和$
的意義就變成了匹配行的開(kāi)始處和結(jié)束處。
\w
。不錯(cuò),這與學(xué)習(xí)英文時(shí)要背的成千上萬(wàn)個(gè)同名的東西的確關(guān)系不大 :)^
和$
的話,對(duì)于\d{5,12}
而言,使用這樣的方法就只能保證字符串里包含5到12連續(xù)位數(shù)字,而不是整個(gè)字符串就是5到12位數(shù)字。
更多建議: