正則表達(dá)式的元字符

2018-12-11 15:21 更新

我們已經(jīng)知道了一些很有用的正則表達(dá)式的元字符了,比如\b,.,*,還有\d.當(dāng)然正則表達(dá)式中包含的元字符多種多樣,比如\s匹配任意的空白符,包括空格,制表符(Tab),換行符,中文全角空格等\w匹配字母或數(shù)字或下劃線或漢字等。

下面來看看更多的例子:

\ba\w*\b匹配以字母a開頭的單詞——先是某個單詞開始處(\b),然后是字母a,然后是任意數(shù)量的字母或數(shù)字(\w*),最后是單詞結(jié)束處(\b)

\d+匹配1個或更多連續(xù)的數(shù)字。這里的+是和*類似的元字符,不同的是*匹配重復(fù)任意次(可能是0次),而+則匹配重復(fù)1次或更多次

\b\w{6}\b 匹配剛好6個字符的單詞。

表1.常用的元字符
代碼說明
.匹配除換行符以外的任意字符
\w匹配字母或數(shù)字或下劃線
\s匹配任意的空白符
\d匹配數(shù)字
\b匹配單詞的開始或結(jié)束
^匹配字符串的開始
$匹配字符串的結(jié)束

元字符^(和數(shù)字6在同一個鍵位上的符號)和$都匹配一個位置,這和\b有點類似。^匹配你要用來查找的字符串的開頭,$匹配結(jié)尾。這兩個代碼在驗證輸入的內(nèi)容時非常有用,比如一個網(wǎng)站如果要求你填寫的QQ號必須為5位到12位數(shù)字時,可以使用:^\d{5,12}$。

這里的{5,12}和前面介紹過的{2}是類似的,只不過{2}匹配只能不多不少重復(fù)2次{5,12}則是重復(fù)的次數(shù)不能少于5次,不能多于12次,否則都不匹配。

因為使用了^$,所以輸入的整個字符串都要用來和\d{5,12}來匹配,也就是說整個輸入必須是5到12個數(shù)字,因此如果輸入的QQ號能匹配這個正則表達(dá)式的話,那就符合要求了。

和忽略大小寫的選項類似,有些正則表達(dá)式處理工具還有一個處理多行的選項。如果選中了這個選項,^$的意義就變成了匹配行的開始處和結(jié)束處。

注解:

  1. 對中文/漢字的特殊處理是由.Net提供的正則表達(dá)式引擎支持的,其它環(huán)境下的具體情況請查看相關(guān)文檔。
  2. 好吧,現(xiàn)在我們說說正則表達(dá)式里的單詞是什么意思吧:就是不少于一個的連續(xù)的\w。不錯,這與學(xué)習(xí)英文時要背的成千上萬個同名的東西的確關(guān)系不大 :)
  3. 正則表達(dá)式引擎通常會提供一個“測試指定的字符串是否匹配一個正則表達(dá)式”的方法,如JavaScript里的RegExp.test()方法或.NET里的Regex.IsMatch()方法。這里的匹配是指是字符串里有沒有符合表達(dá)式規(guī)則的部分。如果不使用^$的話,對于\d{5,12}而言,使用這樣的方法就只能保證字符串里包含5到12連續(xù)位數(shù)字,而不是整個字符串就是5到12位數(shù)字。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號