<?php
/*元字元:
\d 匹配任意乙個0-9的數字
\d 匹配任意乙個除十進位制數以外的字元,等價於[^0-9]
\s 匹配任意乙個空白的字元,比如換頁符、換行符、回車符號、製表符、垂直製表符
\s 匹配出空白字元以外的所有字元
\w 匹配任意乙個數字或字母或下劃線
\w 匹配除數字、字母、下劃線以外的任意字元
. 匹配除換行符以外的任意乙個字元
* 匹配0次,或1次、或多次其前面字元
+ 匹配1次或多次其前面的字元
? 匹配0次或1次前面的字元
表示其前面字元恰好出現n次
表示其前面字元出現不少於n次
表示其前面的字元至少出現n次,最多出現m次
^或\a 匹配字串開始的位置
$或者\z 匹配字串的結束位置
| 匹配兩個或多個模式
匹配方括號中的任意乙個字元
[^] 匹配除方括號中字元以外的任意乙個字元
() 將括號中作為乙個整體以便將其中的內容獲取到
*/$pattern
='/test/'
;//# ! {} |都可以用於作為定界符
$str
='abctests****sfsdfasdtest'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
echo'';
// \d代表匹配任意乙個十進位制數字等價於0-9
$pattern1
='/te\dst/'
;//注意寫斜槓
$str
='te1stdsfsdfsdfdsfds'
;var_dump
(preg_match_all
($pattern1
,$str
,$arr))
;var_dump
($arr);
echo'';
$pattern
='/te*st/'
;//* 匹配0次,或1次、或多次其前面字元
$str
='abcteeest'
;//abctst abctest abcteeeeeest
var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
echo'';
$pattern
='/te+st/'
;//+ 匹配1次或多次其前面的字元
$str
='abctest'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
echo'';
$pattern
='/test/'
;// 表示其前面字元恰好出現n次
$str
='abctest'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
echo'';
$pattern
='/test/'
;// 表示其前面字元出現不少於n次
$str
='abcteeest'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
// 混合用法
//.與混合
echo'';
$pattern
='/t.st/'
;// t...st
$str
='abcteeest'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
//.與*配合
echo'';
$pattern
='/t.*st/'
;//*匹配0次,或1次、或多次其前面字元 .匹配除換行符以外的任意乙個字元
$str
='abcteeeeest'
;//abctst abctest abcteeeeeest
var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
//.與*配合
echo'';
$pattern
='/t.*st/'
;//.*配合使用預設情況下是貪婪匹配(盡可能多的去匹配字元)
$str
='abcteeeeesttestsetestsetst'
;//abctst abctest abcteeeeeest
var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
//.*後面加上?可以解決貪婪匹配的問題,懶惰匹配
echo'';
$pattern
='/1t.*?st/'
;$str
='1abcteeeees1ttestsetes1tsetst'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
//.*後面加上?可以解決貪婪匹配的問題,懶惰匹配
echo'';
$pattern
='/1t.*?st/'
;$str
='1abcteeeees1ttestsetes1tsetst'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
//^或/a 匹配字串開始位置
echo'';
$pattern
='/^test/'
;$str
='testabc'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
//^或$ 配合使用
echo'';
$pattern
='/^te.*st$/'
;$str
='test'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
//^或$ 配合使用
echo'';
$pattern
='/test|abc|aaa/'
;//| 匹配兩個或多個模式
$str
='testaaasdfasdfsadfaaaefw'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
//匹配方括號中的任意乙個字元
echo'';
$pattern
='/t[abcde]st/'
;$str
='tdstaaasdfasdfsadfaaaefw'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr);
//[^] 匹配除方括號中字元以外的任意乙個字元
echo'';
$pattern
='/t[^e]st/'
;$str
='tast'
;var_dump
(preg_match_all
($pattern
,$str
,$arr))
;var_dump
($arr
);
正規表示式 元字元
現在你已經知道幾個很有用的元字元了,如 b 還有 d 當然還有更多的元字元可用,比如 s 匹配任意的空白符,包括空格,製表符 tab 換行符,中文全形空格等 w匹配字母或數字或下劃線或漢字等。ba w b 匹配以字母a 開頭的單詞 先是某個單詞開始處 b 然後是字母a 然後是任意數量的字母或數字 w...
正規表示式 元字元
元字元 描述.點 匹配任何單個字元。例如正規表示式r.t匹配這些字串 rat rut r t,但是不匹配root。匹配行結束符。例如正規表示式weasel 能夠匹配字串 he s a weasel 的末尾 但是不能匹配字串 they are a bunch of weasels.匹配一行的開始。例如...
正規表示式元字元
l 基本元字元 元字元說明 匹配任意單個字元 邏輯或操作符 定義乙個字元集合,匹配該集合中的乙個字元 對字元集合求非 是對整個集合求非,而不是緊挨著 符號的字元 在字元集合中定義乙個區間。如 a za z 對下乙個字元轉義。比如 n表示換行。數量元字元 元字元說明 匹配前乙個字元 子表示式 零次或多...