PHP 正規表示式

2021-09-24 16:21:27 字數 2758 閱讀 1167

正規表示式簡介

在php中,正規表示式一般是由正規字元和一些特殊字元(類似於萬用字元)聯合構成的乙個文字模式的程式性描述

php中,正規表示式有三個作用:

乙個正規表示式中至少包含乙個原子(乙個內容,也就是乙個匹配的東西、乙個a、乙個萬用字元、等等)。

在php中有兩套正規表示式函式庫,兩者功能相似,只是執行效率略有差異:

* 正規表示式的語法規則

1. 定界符

2. 原子

原子是由所有那些未顯示指定為元字元的列印字元(能輸出,能列印的)和非列印字元(看不見的,比如換行符等)組成,具體分為5類。

普通字元作為原子: 如 a ~ z、a ~ z、0~9 等

一些特殊字元和轉義後元字元作為原子:所有標點符號,但語句特殊意義的符號需要轉義後才可作為原子,如:\」 \』 * + ? . (都是萬用字元,需要轉義後,可以輸出、直接列印)等

一些非列印字元作為原子: 如:\f \n (常用) \r(常用) \t \v \cx

使用「通用字元型別」(乙個表示多個)作為原子:如:\d \d \w \w \s \s。

自定義原子表()作為原子:如:』/[apj]sp/』 』/ [ ^apj ] sp/』

常用的非列印字元

原子字元

含義描述

\cx匹配由 x 指明的控制字元。如\cm匹配乙個 control-m 或者回車符。x 的值必須為a~z或者a~z之一。

\f匹配乙個換頁符,等價於\x0c\cl

\n匹配乙個換行符,等價於\x0a\cj

\r匹配乙個回車符,等價於\x0d\cm

\t匹配乙個製表符,等價於\x09\ci

\v匹配乙個垂直製表符,等價於\x0b\ck

常用的通用列印字元

原子字元

含義描述

\d匹配任意乙個十進位制數字,等價於[0-9]

\d匹配任意乙個除十進位制以外的字元,等價於[^0-9]

\s匹配任意乙個空白符,等價於[\f\n\r\t\v]

\s匹配除空白符以外任何字元,等價於[^\f\n\r\t\v]

\w匹配任意乙個數字,字母或下s畫線,等價於[0-9a-za-z]

\w匹配乙個數字、字母或下劃線以外的任意乙個字元,等價於[^0-9a-za-z]

3. 元字元

元字元含義描述

*匹配0次、1次或多次其前的原子(\d\d => \d*)

+匹配1次或多次其前的原子 (和 * 基本一樣,至少會有一次)

?匹配0次或1次其前的原子(要麼沒有,要麼只有一位)

.匹配除了換行符外的任意乙個字元

|匹配兩個或多個分支選擇(或的意思,前面寫個原子,後面寫個原子,兩者選一)

表示其前面的原子正好出現n次(舉例、匹配3位的整數:\d)

表示其前面的原子出現不小於n次

表示其前面的原子至少出現n次,最多出現m次(舉例、3到5位字串:\w)

^\a匹配輸入字串的開始位置(或是多行模式下行的開頭,即緊隨乙個換行符之後:^http)

$\z匹配輸入字串的結束位置(或是多行模式下行的結尾,即緊隨乙個換行符之前:com$)

\b匹配單詞的邊界

\b匹配除單詞邊界以外的部分

匹配方括號中指定的任意乙個原子 ([abc])

[^]匹配除方括號中的原子以外的任意乙個字元([^abc])

()匹配其整體為乙個原子,即模式單元。可以理解為由多個單子原子組成的大原子((http))

4. 字串邊界限制

5. 單詞串邊界限制

6. 重複匹配(?*+

7. 任何乙個字元(.)

通常可以使用.*組合來匹配除換行符外的任何字元。在一些書籍中也稱其為「全匹配符」 或 「單含匹配符」。

8. 重複匹配({}

舉例說明:

9. 原子表([-]

10. 模式選擇符(|

11. 模式單元(()

與 perl 相容的正規表示式函式

php正規表示式詳解,PHP正規表示式使用詳解

操作符 描述 轉義符 圓括號和方括號 限定符 anymetacharacter 位置和順序 或 操作 全部符號解釋 字元 描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開...

PHP正規表示式

php正規表示式的定義 用於描述字元排列和匹配模式的一種語法規則。它主要用於字串的模式分割 匹配 查詢及替換操作。php中的正則函式 php中有兩套正則函式,兩者功能差不多,分別為 一套是由pcre perl compatible regular expression 庫提供的。使用 preg 為字...

PHP正規表示式

今天起,會開始弄乙個php教程系列文章.主要是針對正規表示式的.大概的內容排序是這樣安排的 1.php 中的正規表示式 2.八個實用的php正規表示式 3.如何書寫更易閱讀的php正規表示式 4.半小時精通正規表示式 5.正則在文章採集系統中的應用及常見問題答疑 6.更多策劃中 投稿,完善本系列,讓...