PHP正規表示式教程

2022-06-08 03:48:10 字數 1429 閱讀 1574

1、入門簡介 

在編寫處理字串的程式或網頁時,經常會有查詢符合某些複雜規則的字串的需要。正規表示式就是用於描述這些規則的工具。換句話說,正規表示式就是記錄文字規則的**。 

很可能你使用過windows/dos下用於檔案查詢的萬用字元(wildcard),也就是*和?。如果你想查詢某個目錄下的所有的word文件的話,你會搜尋*.doc。在這裡,*會被解釋成任意的字串。和萬用字元類似,正規表示式也是用來進行文字匹配的工具,只不過比起萬用字元,它能更精確地描述你的需求——當然,代價就是更複雜——比如你可以編寫乙個正規表示式,用來查詢所有以0開頭,後面跟著2-3個數字,然後是乙個連字型大小「-」,最後是7或8位數字的字串(像010-12345678或0376-7654321)。

2、 基本語法 

正規表示式(regular expression)描述了一種字串匹配的模式,可以用來檢查乙個字串串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。格式如下:

/正規表示式/[模式修正符]  

正規表示式包含: 

1、 普通字元:包含a-z、a-z、0-9

2、 元字元:包含特殊符號、轉義字元、限定符、定位符 

3、 模式修正符:用固定的字元,表示特定含義,是正則補充說明的

1.普通字元和2.元字元之後再介紹

3. 模式修正符有哪些.

perl風格的正規表示式允許把單個字元選項(標誌)放在正規表示式模式後面來修改匹配的解釋或行為。例如,要進行不區分大小寫的匹配,可以簡單地使用i標誌:

preg_match('/cat/i', 'stop, catherine!');        // returns true返回true

perl標誌 修飾符 意 義

/regexp/i 不區分大小寫的匹配

/regexp/s 使句點(.)匹配任何字元,包括換行符(\n)

/regexp/x 從模式中刪除空白符和注釋

/regexp/m 使^匹配換行符 (\n)之後的內容,美元符號($)匹配換行符 (\n)之前的內容

/regexp/e 如果替換字串是php**,使用eval()執行該**來得到實際的替換字串。

php的perl相容正規表示式函式也支援在perl中不支援的其他修飾符:

其他的php標誌 修飾符 意 義

/regexp/u 顛倒子模式的貪婪性;*和+盡可能少地匹配而不是盡可能多。

/regexp/u 把模式字串當作utf-8編碼對待

/regexp/x 如果乙個反斜槓之後跟著沒有特殊意義的字元,將產生乙個錯誤

/regexp/a 把錨定位在字串的開頭就像模式中有^一樣

/regexp/d 使$字元僅匹配一行的末尾

/regexp/s 使表示式解析器更加小心地檢查模式的結構,使得第二次執行時(如在乙個迴圈中)加快速度

參考:

正規表示式 教程

引言 什麼是正規表示式?準備工作 匹配單個字元 匹配固定單個字元 匹配任意單個字元 匹配 元字元 匹配字元組 字元組的基本語法 在字元組中使用字元區間 反義字元組 匹配特殊字元7 匹配元字元 匹配空字元 匹配特定字元型別9 匹配數字型別 匹配字母 數字 下劃線 匹配空字元 匹配多個字元 匹配乙個或多...

正規表示式教程

正規表示式定義 正規表示式應用 正規表示式建立 第一種方式 var exeg new regexp 檢索內容 修飾符 第二種方式 var exeg 檢索內容 修飾符 正規表示式的使用 第一種方式 var str hello wolrd var exeg new regexp e console.lo...

正規表示式教程 正規表示式定義 2

正規表示式教程 正規表示式定義 2 2007 05 11 08 25 正規表示式 regular expression 描述了一種字串匹配的模式,可以用來檢查乙個串是否含有某種子串 將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。正規表示式是由普通字元 例如字元 a 到 z 以及特殊字元 ...