萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> 正則表達式使用詳解

正則表達式使用詳解

假如我們問那些UNIX系統的愛好者他們最喜歡什麼,答案除了穩定的系統和可以遠程啟動之外,十有八九的人會提到正則表達式;假如我們再問他們最頭痛的是什麼,可能除了復雜的進程控制和安裝過程之外,還會是正則表達式。那麼正則表達式到底是什麼?如何才能真正的把握正則表達式並正確的加以靈活運用?本文將就此展開介紹,希望能夠對那些渴望了解和把握正則表達式的讀者有所助益。


入門簡介

  簡單的說,正則表達式是一種可以用於模式匹配和替換的強有力的工具。我們可以在幾乎所有的基於UNIX系統的工具中找到正則表達式的身影,例如,vi編輯器,Perl或PHP腳本語言,以及awk或sed shell程序等。此外,象JavaScript/" target="_blank">JavaScript這種客戶端的腳本語言也提供了對正則表達式的支持。由此可見,正則表達式已經超出了某種語言或某個系統的局限,成為人們廣為接受的概念和功能。

  正則表達式可以讓用戶通過使用一系列的非凡字符構建匹配模式,然後把匹配模式與數據文件、程序輸入以及WEB頁面的表單輸入等目標對象進行比較,根據比較對象中是否包含匹配模式,執行相應的程序。

  舉例來說,正則表達式的一個最為普遍的應用就是用於驗證用戶在線輸入的郵件地址的格式是否正確。假如通過正則表達式驗證用戶郵件地址的格式正確,用戶所填寫的表單信息將會被正常處理;反之,假如用戶輸入的郵件地址與正則表達的模式不匹配,將會彈出提示信息,要求用戶重新輸入正確的郵件地址。由此可見正則表達式在WEB應用的邏輯判定中具有舉足輕重的作用。


基本語法

  在對正則表達式的功能和作用有了初步的了解之後,我們就來具體看一下正則表達式的語法格式。

  正則表達式的形式一般如下:

  /love/

  其中位於“/”定界符之間的部分就是將要在目標對象中進行匹配的模式。用戶只要把希望查找匹配對象的模式內容放入“/”定界符之間即可。為了能夠使用戶更加靈活的定制模式內容,正則表達式提供了專門的“元字符”。所謂元字符就是指那些在正則表達式中具有非凡意義的專用字符,可以用來規定其前導字符(即位於元字符前面的字符)在目標對象中的出現模式。

  較為常用的元字符包括: “ ”, “*”,以及 “?”。其中,“ ”元字符規定其前導字符必須在目標對象? 續出現一次或多次,“*”元字符規定其前導字符必須在目標對象中出現零次或連續多次,而“?”元字符規定其前導對象必須在目標對象中連續出現零次或一次。

  下面,就讓我們來看一下正則表達式元字符的具體應用。

  /fo /

  因為上述正則表達式中包含“ ”元字符,表示可以與目標對象中的 “fool”, “fo”, 或者 “football”等在字母f後面連續出現一個或多個字母o的字符串相匹配。

  /eg*/

  因為上述正則表達式中包含“*”元字符,表示可以與目標對象中的 “easy”, “ego”, 或者 “egg”等在字母e後面連續出現零個或多個字母g的字符串相匹配。

  /Wil?/

  因為上述正則表達式中包含“?”元字符,表示可以與目標對象中的 “Win”, 或者 “Wilson”,等在字母i後面連續出現零個或一個字母l的字符串相匹配。

  除了元字符之外,用戶還可以精確指定模式在匹配對象中出現的頻率。例如,

  /jim{2,6}/

  上述正則表達式規定字符m可以在匹配對象中連續出現2-6次,因此,上述正則表達式可以同jimmy或jimmmmmy等字符串相匹配。

  在對如何使用正則表達式有了初步了解之後,我們來看一下其它幾個重要的元字符的使用方式。

  s:用於匹配單個空格符,包括tab鍵和換行符;

  S:用於匹配除單個空格符之外的所有字符;

  d:用於匹配從0到9的數字;

  w:用於匹配字母,數字或下劃線字符;

  W:用於匹配所有與w不匹配的字符;

  . :用於匹配除換行符之外的所有字符。

  (說明:我們可以把s和S以及w和W看作互為逆運算)

  下面,我們就通過實例看一下如何在正則表達式中使用上述元字符。

  /s /

 

 

在對正則表達式有了較為全面的了解之後,我們就來看一下如何在Perl,PHP,以及JavaScript/" target="_blank">JavaScript中使用正則表達式。

  通常,Perl中正則表達式的使用格式如下:

  operator / regular-expression / string-to-replace / modifiers

  運算符一項可以是m或s,分別代表匹配運算和替換運算。

  其中,正則表達式一項是將要進行匹配或替換操作的模式,可以由任意字符,元字符,或定位符等組成。替換字符串一項是使用s運算符時,對查找到的模式匹配對象進行替換的字符串。最後的參數項用來控制不同的匹配或替換方式。例如:

  s/geed/good/

  將會在目標對象中查找第一個出現的geed字串,並將其替換為good。假如我們希望在目標對象的全局范圍內執行多次查找

copyright © 萬盛學電腦網 all rights reserved