php正規表示式完全教程 四

2021-06-14 04:12:20 字數 3360 閱讀 8869

大 中

小】php正規表示式完全教程四,php正規表示式的全部符號解釋...

本節介紹php正規表示式的全部符號解釋。

字元 描述

將下乙個字元標記為乙個特殊字元、或乙個原義字元、或乙個向後引用、或乙個八進位制轉義符。

例如,'n' 匹配字元 "n"。'n' 匹配乙個換行符。序列 '' 匹配 "" 而 "(" 則匹配 "("。

^ 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,^ 也匹配 'n' 或 'r' 之後的位置。

$ 匹配輸入字串的結束位置。如果設定了regexp 物件的 multiline 屬性,$ 也匹配 'n' 或 'r' 之前的位置。

* 匹配前面的子表示式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等價於。

+ 匹配前面的子表示式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價於 。

? 匹配前面的子表示式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等價於 。

n 是乙個非負整數。匹配確定的 n 次。例如,'o' 不能匹配 "bob" 中的 'o',但是能匹配 "food" 中的兩個 o。

n 是乙個非負整數。至少匹配n 次。例如,'o' 不能匹配 "bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o' 等價於 'o+'。'o' 則等價於 'o*'。

m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o" 將匹配 "fooooood" 中的前三個 o。'o' 等價於 'o?'。請注意在逗號和兩個數之間不能有空格。

? 當該字元緊跟在任何乙個其他限制符 (*, +, ?, , , ) 後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜尋的字串,而預設的貪婪模式則盡可能多的匹配所搜尋的字串。例如,對於字串 "oooo",'o+?' 將匹配單個 "o",而 'o+' 將匹配所有 'o'。

. 匹配除 "n" 之外的任何單個字元。要匹配包括 'n' 在內的任何字元,請使用象 '[.n]' 的模式。

(pattern) 匹配 pattern 並獲取這一匹配。所獲取的匹配可以從產生的 matches 集合得到,在vbscript 中使用 submatches 集合,在jscript 中則使用 $0…$9 屬性。要匹配圓括號字元,請使用 '(' 或 ')'。

(?:pattern) 匹配 pattern 但不獲取匹配結果,也就是說這是乙個非獲取匹配,不進行儲存供以後使用。這在使用 "或" 字元 (|) 來組合乙個模式的各個部分是很有用。例如, 'industr(?:y|ies) 就是乙個比 'industry|industries' 更簡略的表示式。

(?=pattern) 正向預查,在任何匹配 pattern 的字串開始處匹配查詢字串。這是乙個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如,'windows (?=95|98|nt|2000)' 能匹配 "windows 2000" 中的 "windows" ,但不能匹配 "windows 3.1" 中的 "windows"。預查不消耗字元,也就是說,在乙個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之後開始。

(?!pattern) 負向預查,在任何不匹配 pattern 的字串開始處匹配查詢字串。這是乙個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如'windows (?!95|98|nt|2000)' 能匹配 "windows 3.1" 中的 "windows",但不能匹配 "windows 2000" 中的 "windows"。預查不消耗字元,也就是說,在乙個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之後開始

x|y 匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 則匹配 "zood" 或 "food"。

[xyz] 字元集合。匹配所包含的任意乙個字元。例如, '[abc]' 可以匹配 "plain" 中的 'a'。

[^xyz] 負值字元集合。匹配未包含的任意字元。例如, '[^abc]' 可以匹配 "plain" 中的'p'。

[a-z] 字元範圍。匹配指定範圍內的任意字元。例如,'[a-z]' 可以匹配 'a' 到 'z' 範圍內的任意小寫字母字元。

[^a-z] 負值字元範圍。匹配任何不在指定範圍內的任意字元。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 範圍內的任意字元。

b 匹配乙個單詞邊界,也就是指單詞和空格間的位置。例如, 'erb' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。

b 匹配非單詞邊界。'erb' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。

cx 匹配由 x 指明的控制字元。例如, cm 匹配乙個 control-m 或回車符。x 的值必須為 a-z 或 a-z 之一。否則,將 c 視為乙個原義的 'c' 字元。

d 匹配乙個數字字元。等價於 [0-9]。

d 匹配乙個非數字字元。等價於 [^0-9]。

f 匹配乙個換頁符。等價於 x0c 和 cl。

n 匹配乙個換行符。等價於 x0a 和 cj。

r 匹配乙個回車符。等價於 x0d 和 cm。

s 匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ fnrtv]。

s 匹配任何非空白字元。等價於 [^ fnrtv]。

t 匹配乙個製表符。等價於 x09 和 ci。

v 匹配乙個垂直製表符。等價於 x0b 和 ck。

w 匹配包括下劃線的任何單詞字元。等價於'[a-za-z0-9_]'。

w 匹配任何非單詞字元。等價於 '[^a-za-z0-9_]'。

xn 匹配 n,其中 n 為十六進製制轉義值。十六進製制轉義值必須為確定的兩個數字長。例如,'x41' 匹配 "a"。'x041' 則等價於 'x04' & "1"。正規表示式中可以使用 ascii 編碼。.

num 匹配 num,其中 num 是乙個正整數。對所獲取的匹配的引用。例如,'(.)1' 匹配兩個連續的相同字元。

n 標識乙個八進位制轉義值或乙個向後引用。如果 n 之前至少 n 個獲取的子表示式,則 n 為向後引用。否則,如果 n 為八進位制數字 (0-7),則 n 為乙個八進位制轉義值。

nm 標識乙個八進位制轉義值或乙個向後引用。如果 nm 之前至少有 nm 個獲得子表示式,則 nm 為向後引用。如果 nm 之前至少有 n 個獲取,則 n 為乙個後跟文字 m 的向後引用。如果前面的條件都不滿足,若 n 和 m 均為八進位制數字 (0-7),則 nm 將匹配八進位制轉義值 nm。

nml 如果 n 為八進位制數字 (0-3),且 m 和 l 均為八進位制數字 (0-7),則匹配八進位制轉義值 nml。

un 匹配 n,其中 n 是乙個用四個十六進製制數字表示的 unicode 字元。例如, u00a9 匹配版權符號 (?)。

PHP正規表示式教程

1 入門簡介 在編寫處理字串的程式或網頁時,經常會有查詢符合某些複雜規則的字串的需要。正規表示式就是用於描述這些規則的工具。換句話說,正規表示式就是記錄文字規則的 很可能你使用過windows dos下用於檔案查詢的萬用字元 wildcard 也就是 和?如果你想查詢某個目錄下的所有的word文件的...

正規表示式 教程

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

正規表示式教程

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