學習正規表示式的最好方法是從例子開始,理解例子之後再自己對例子進行修改,實驗。下面給出了不少簡單的例子,並對它們作了詳細的說明。
假設你在一篇英文**裡查詢 hi
,你可以使用正規表示式hi。
這幾乎是最簡單的正規表示式了,它可以精確匹配這樣的字串:由兩個字元組成,前乙個字元是h,後乙個是i。通常,處理正規表示式的工具會提供乙個忽略大小寫的選項,如果選中了這個選項,它可以匹配hi,hi,hi,hi這四種情況中的任意一種。
不幸的是,很多單詞裡包含hi這兩個連續的字元,比如him,history,high等等。用hi來查詢的話,這裡邊的hi也會被找出來。如果要精確地查詢hi這個單詞的話,我們應該使用\bhi\b。
1):\b
是正規表示式規定的乙個特殊**(好吧,某些人叫它元字元,metacharacter),代表著單詞的開頭或結尾,也就是單詞的分界處
。雖然通常英文的單詞是由空格,標點符號或者換行來分隔的,但是\b並不匹配這些單詞分隔字元中的任何乙個,它只匹配乙個位置。
假如你要找的是hi後面不遠處跟著乙個lucy,你應該用\bhi\b.*\blucy\b
。
這裡,2):
.是另乙個元字元,匹配除了換行符以外的任意字元
。3):*
同樣是元字元,不過它代表的不是字元,也不是位置,而是數量——它指定*前邊的內容可以連續重複使用任意次以使整個表示式得到匹配。
因此,.*連在一起就意味著任意數量的不包含換行的字元。現在\bhi\b.*\blucy\b的意思就很明顯了:先是乙個單詞hi,然後是任意個任意字元(但不能是換行),最後是lucy這個單詞。
如果同時使用其它元字元,我們就能構造出功能更強大的正規表示式。比如下面這個例子:
0\d\d-\d\d\d\d\d\d\d\d
匹配這樣的字串:以0開頭,然後是兩個數字,然後是乙個連字型大小「-」,最後是8個數字(也就是中國的**號碼。當然,這個例子只能匹配區號為3位的情形)。
4):這裡的\d
是個新的元字元,匹配一位數字(0,或1,或2,或……)
。-不是元字元,只匹配它本身——連字元(或者減號,或者中橫線,或者隨你怎麼稱呼它)。
為了避免那麼多煩人的重複,我們也可以這樣寫這個表示式:
5):0\d-\d
。這裡\d後面的()的意思是前面\d
必須連續重複匹配2次(8次)。
正規表示式入門教程
元字元原義字元 非列印字元 字元類預定義類 邊界量詞 貪婪與懶惰 非貪婪 3.練習一下 先來看看幾個常用的案例。手機號碼正規表示式 1 345789 0 9 解釋 最外的 是正則的表示式的標誌,表示以什麼開頭,表示哪些可選項,表示出現幾次,以什麼結尾。手機號案例 以1開頭,第2位為 3,4,5,7,...
正規表示式入門教程
正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索 替換那些符合某個模式的文字。在編寫處理字...
正規表示式入門教程
表1.常用的元字元 匹配除換行符以外的任意字元 w匹配字母或數字或下劃線或漢字 s匹配任意的空白符 d匹配數字 b匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 表2.常用的限定符 語法說明 重複零次或更多次 重複一次或更多次 重複零次或一次 重複n次 重複n次或更多次 重複n到m次 3 正規...