30分鐘學習正則表達式指南(二)

 

6 /ba/w*/b查找以字母a開始的詞組

 

這個以查找詞組的起始位置(/b),然後是字母“b”,然後是任何重複的文字或者數字字符(/w*),然後是詞組的結尾(/b)。

 

7 /d+ 查找重複的數字

這裏面,“+”與“*”很相似,但是“+”要求至少匹配一次。

 

8 /b/w{6}/b 查找六個字母的詞組

試着在Expresso中運行這些表達式,然後開始你自己的正則表達式測試。下面的列表中就是一些具有特殊意義的字符:

.

匹配除新行外的所有字符

/w

匹配任意字母字符

/s

匹配任意空白字符

/d

匹配任意數字

/b

匹配單詞的開始或者結尾

^

匹配字符串的開始

$

匹配字符串的結尾

1 常用到的特殊字符正則表達式

 

開始

特殊字符“^”與“$”經常用來查找開始或者結尾匹配。在校驗整個輸入必須符合某一個格式時,這個就顯得尤爲有效。例如,校驗一個7位數字的電話號碼,你可能這樣使用:

 

9 ^/d{3}-/d{4}$ 校驗7位數字的電話號碼

 

這個同例5一樣,但是它僅僅是強制要求整體輸入,而匹配之後沒有校驗其他任何東西。在“.NET”中通過設置“Multiline”選擇,“^”與“$”可以改變原有的意義,而去匹配單獨一行文本的開始和結束匹配,而不是整個文本。“Expresso”使用了這個選項。

 

轉義字符

當你確實想要查找任意一個特殊字符如“^”或者“$”的時候就會出現一些問題。使用反斜槓就可以去掉特殊的含義,比如“/^”、“/$”以及“//”,可以匹配本來的字符含義:“^”、“$”以及“/”。

 

重複

你已經明白{3} 以及“*”,都用來表示單一字符的重複出現。到後面,你將看到同樣的符號將用來重複整個子表達式。這裏還有其他幾種方式來制定一個重複,如下表中:

*

重複任意次數

+

重複至少一次

?

重複一次或者零次

{n}

重複 n

{n,m}

重複n次,但是不超過m

{n,}

重複至少n

2 常用到的數量詞

 

我們將開始一些其他的例子:

10  /b/w{5,6}/b 查找5或者6個字母

 

11  /b/d{3}/s/d{3}-/d{4} 查找10位數字的電話號碼

 

12  /d{3}-/d{2}-/d{4} 社會安全號碼

 

13  ^/w* 一行中或者文本中的第一個詞語

 

在最後一個例子中,嘗試有或者沒有“Multiline”選項,這個將改變“^”的含義。

 

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