程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> PHP 正則表達式語法(一)

PHP 正則表達式語法(一)

編輯:PHP基礎知識
 

正則表達式簡介

在某些應用中,往往有時候需要根據一定的規則來匹配(查找)確認一些字符串,如要求用戶輸入的 QQ 號碼為數字且至少 5 位。用於描述這些規則的工具就是正則表達式。

最簡單的匹配

最簡單的匹配就是直接給定字符匹配。如用字符 a 去匹配 aabab ,則會匹配出 3 個結果,分別是字符串中的第 1,2 和第 4 個字符。這種匹配是最簡單的情況,但往往實際處理中會復雜得多,如下面的 “QQ號碼為數字且至少5位” ,其對應的正則表達式為:

^d{5,}$

該正則表達式就描述需要確定的內容為至少 5 位以上的數字。我們來具體看看該表達式是怎麼描述這一規則的:

  1. ^:表示匹配字符串的開始,也即該字符串是獨立的開始而不是包含在某個字符串之內
  2. d:表示匹配數字
  3. {5,}:表示至少匹配5位及以上
  4. $:表示匹配字符串的結束,也即該字符串是獨立的結束

現在就很清楚了,該正則表達式綜合起來就是匹配 5 位以上的連續數字,且有獨立的開始和結束,對於少於 5 位的數字,或者不是以數字開始和結尾的如 a123456b 這樣都是無效的。

從該例子可以看出,正則表達式是從左至右描述的。

同樣,如果要匹配移動號碼的正則表達式為:

^1d{10}$

提示

由於對正則表達式的匹配結果,在很多情況下都不是那麼確定,所以最好下載一些輔助工具用於測試正則表達式的匹配結果。這類工具如 Match Tracer、RegExBuilder 等,以及其他類似的工具也可。

元字符

在上面的例子中,^ 、d 及 $ 等這些符號,代表了特定的匹配意義,我們稱之為元字符,常用的元字符如下:

元字符 說明 . 匹配除換行符意外的任意字符 w 匹配字母或數字或下劃線 s 匹配任意的空白符 d 匹配數字 b 匹配單詞的開始或結束 ^ 匹配字符串的開始 $ 匹配字符串的結束 [x] 匹配x字符,如匹配字符串中的 a、b 和 c 字符 W w的反義,即匹配任意非字母,數字,下劃線和漢字的字符 S s的反義,即匹配任意非空白符的字符 D d的反義,即匹配任意非數字的字符 B b的反義,即不是單詞開頭或結束的位置 [^x] 匹配除了 x 意外的任意字符,如 [^abc] 匹配除了 abc 這幾個字母之外的任意字符

提示

  1. 當我們要匹配這些元字符的時候,我們需要用到字符轉義功能,同樣正則表達式裡面用 來表示轉義,如要匹配 . 符號,則需要用 . ,否則 . 會被解釋成“除換行符外的任意字符”。當然,要匹配 ,則需要寫成 \
  2. 連續的數字或字母可以用 – 符號連接起來,如 匹配所有的小寫字母,[1-5] 匹配 1 至 5 這 5 個數字
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved