正規表示式說明

2021-07-03 05:45:33 字數 1352 閱讀 8710

正規表示式中具有特殊含義的字元稱之為元字元,常用的元字元有:

\ 一般用於轉義字元

^ 斷言目標的開始位置(或在多行模式下是行首)

$ 斷言目標的結束位置(或在多行模式下是行尾)

. 匹配除換行符外的任何字元(預設)

[ 開始字元類定義

] 結束字元類定義

| 開始乙個可選分支

( 子組的開始標記

) 子組的結束標記

? 作為量詞,表示 0 次或 1 次匹配。位於量詞後面用於改變量詞的貪婪特性。 (查閱量詞)

* 量詞,0 次或多次匹配

+ 量詞,1 次或多次匹配

自定義量詞結束標記

元字元具有兩種使用場景,一種是可以在任何地方都能使用,另一種是只能在方括號內使用,在方括號內使用的有:

\ 轉義字元

^ 僅在作為第乙個字元(方括號內)時,表明字元類取反

- 標記字元範圍

其中^在反括號外面,表示斷言目標的開始位置,但在方括號內部則代表字元類取反,方括號內的減號-可以標記字元範圍,例如0-9表示0到9之間的所有數字。

\s匹配任意的空白符,包括空格,製表符,換行符

[^\s]代表非空白符

[^\s]+表示一次或多次匹配非空白符\w匹配字母或數字或下劃線

\d匹配數字

{}指定匹配字元數,如:確定要匹配3個相同的

*表示數量為0個或者多個

正規表示式中每個元字元匹配乙個字元,當使用+之後將會變的貪婪,它將匹配盡可能多的字元,但使用問號?字元時,它將盡可能少的匹配字元,既是懶惰模式。

貪婪模式:在可匹配與可不匹配的時候,優先匹配

//下面的\d表示匹配數字

$p = '/\d+\-\d+/';

$str = "我的**是010-12345678";

preg_match($p, $str, $match);

echo $match[0]; //結果為:010-12345678

懶惰模式:在可匹配與可不匹配的時候,優先不匹配

$p = '/\d?\-\d?/';

$str = "我的**是010-12345678";

preg_match($p, $str, $match);

echo $match[0]; //結果為:0-1

當我們確切的知道所匹配的字元長度的時候,可以使用{}指定匹配字元數

$p = '/\d\-\d/';

$str = "我的**是010-12345678";

preg_match($p, $str, $match);

echo $match[0]; //結果為:010-12345678

正規表示式符號說明

字元 功能 匹配任意1個字元 除了 n 匹配 中列舉的字元 d 匹配數字,即0 9 d 匹配非數字,即不是數字 s 匹配空白,即 空格,tab鍵 s 匹配非空白 w 匹配單詞字元,即a z a z 0 9 w 匹配非單詞字元 匹配字串開頭 匹配字串結尾 b 匹配乙個單詞的邊界 b 匹配非單詞邊界 匹...

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式元字元說明

元字元 描述.點 匹配任何單個字元。例如正規表示式r.t匹配這些字串 rat rut r t,但是不匹配root。匹配行結束符。例如正規表示式weasel 能夠匹配字串 he s a weasel 的末尾 但是不能匹配字串 they are a bunch of weasels.匹配一行的開始。例如...