標籤: 暫無標籤

元字元是一個或一組代替個或多個字元的字元。聽起來有點拗口,但舉一個例子也許你就明白了:元字元*用來匹配一個或多個的前一字元;而元字元 . 用來匹配一個任意的一個字元。

1 元字元 -名詞解釋

所謂元字元就是指那些在正則表達式中具有特殊意義的專用字元,可以用來規定其前導字元(即位於元字元前面的字元)在目標對象中的出現模式。

 

 

2 元字元 -字元應用

較為常用的元字元包括: 「+」, 「*」,以及 「?」。其中,「+」元字元規定其前導字元必須在目標對象中連續出現一次或多次,「*」元字元規定其前導字元必須在目標對象中出現零次或連續多次,而「?」元字元規定其前導對象必須在目標對象中連續出現零次或一次。
下面,就讓我們來看一下正則表達式元字元的具體應用。
/fo+/
因為上述正則表達式中包含「+」元字元,表示可以與目標對象中的 「fool」, 「fo」, 或者 「football」等在字母f後面連續出現一個或多個字母o的字元串相匹配。
/eg*/
因為上述正則表達式中包含「*」元字元,表示可以與目標對象中的 「easy」, 「ego」, 或者 「egg」等在字母e後面連續出現零個或多個字母g的字元串相匹配。
/Wil?/
因為上述正則表達式中包含「?」元字元,表示可以與目標對象中的 「Win」, 或者 「Wilson」,等在字母i後面連續出現零個或一個字母l的字元串相匹配。
除了元字元之外,用戶還可以精確指定模式在匹配對象中出現的頻率。例如,
/jim/
上述正則表達式規定字元m可以在匹配對象中連續出現2-6次,因此,上述正則表達式可以同jimmy或jimmmmmy等字元串相匹配。

 

 

3 元字元 -使用方式

在對如何使用正則表達式有了初步了解之後,我們來看一下其它幾個重要的元字元的使用方式。
\s:用於匹配單個空格符,包括tab鍵和換行符;
\S:用於匹配除單個空格符之外的所有字元;
\d:用於匹配從0到9的數字;
\w:用於匹配字母,數字或下劃線字元;
\W:用於匹配所有與\w不匹配的字元;
. :用於匹配除換行符之外的所有字元。 

^  匹配字元串的開始
$ 匹配字元串的結束
(說明:我們可以把\s和\S以及\w和\W看作互為逆運算) 

下面來看看更多的例子:
\ba\w*\b匹配以字母a開頭的單詞——先是某個單詞開始處(\b),然後是字母a,然後是任意數量的字母或數字(\w*),最後是單詞結束處(\b)。
好吧,現在我們說說正則表達式里的單詞是什麼意思吧:就是不少於一個的連續的\w。不錯,這與學習英文時要背的成千上萬個同名的東西的確關係不大 :)
\d+匹配1個或更多連續的數字。這裡的+是和*類似的元字元,不同的是*匹配重複任意次(可能是0次),而+則匹配重複1次或更多次。
\b\w{6}\b 匹配剛好6個字元的單詞。

元字元^(和數字6在同一個鍵位上的符號)和$都匹配一個位置,這和\b有點類似。^匹配你要用來查找的字元串的開頭,$匹配結尾。這兩個代碼在驗證輸入的內容時非常有用,比如一個網站如果要求你填寫的QQ號必須為5位到12位數字時,可以使用:^\d{5,12}$。
這裡的{5,12}和前面介紹過的{2}是類似的,只不過{2}匹配只能不多不少重複2次,{5,12}則是重複的次數不能少於5次,不能多於12次,否則都不匹配。
因為使用了^和$,所以輸入的整個字元串都要用來和\d{5,12}來匹配,也就是說整個輸入必須是5到12個數字,因此如果輸入的QQ號能匹配這個正則表達式的話,那就符合要求了。
和忽略大小寫的選項類似,有些正則表達式處理工具還有一個處理多行的選項。如果選中了這個選項,^和$的意義就變成了匹配行的開始處和結束處。

4 元字元 -egrep元字元總結


匹配單個字元的元字元

. 點號 匹配單個任意字元
[…] 字元組 匹配單個列出的字元
[^…] 排除型字元組 匹配單個未列出的字元
\char 轉義字元 若char是元字元,或轉義序列無特殊含義時,匹配char對應的普通字元

提供計數功能的元字元


? 問號 容許匹配一次,但非必須
* 星號 可以匹配任意多次,也可能不匹配
+ 加號 至少需要匹配一次,至多可能任意多次
{min,max} 區間量詞 至少需要min次,至多容許max次

匹配位置的元字元


^ 脫字元 匹配一行的開頭位置
$ 美元符 匹配一行的結束位置
\< 單詞分界符 匹配單詞的開始位置
\> 單詞分界符 匹配單詞的結束位置

其他元字元


| alternation 匹配任意分隔的表達式
(…) 括弧 限定多選結構的範圍,標註量詞作用的元素,為反向引用」捕獲」文本
\1,\2,… 反向引用 匹配之前的第一、第二組括弧內的字表達式匹配的文本

使用括弧的3個理由:限制多選結構、分組、捕獲文本
-i的參數很有用,它能忽略大小寫的匹配
轉義有3種情況:
1. \ 加上元字元,表示匹配元字元所使用的普通字元
2. \ 加上非元字元,組成一種由具體實現方式規定其意義的元字元序列 如\<表示單詞的起始邊界
3. \ 加上任意其他字元,默認情況就是匹配此字元,也就是說,反斜線被忽略了

上一篇[尖沙咀鐘樓]  

相關評論

同義詞:暫無同義詞