PHP正規表示式及常用函式

2021-10-17 14:35:19 字數 2807 閱讀 4403

正規表示式是對字串進行操作的一種邏輯公式,就是用一些特定的字元組合成乙個規則字串,稱之為正則匹配模式。

1.舉個簡單例子:

<?php $p=

'/蘋果/'

;$str

="我喜歡吃蘋果";if

(preg_match($p

,$str))

結果如下:

這裡重點介紹一下preg_match函式

preg_match

($reg

,$str,[

$arr])

;$reg就是自己定義的正規表示式

$str是自己要查詢的字串

$arr是匹配到的結果

php手冊定義內容如下:

preg_match

( string $pattern

, string $subject[,

array

&$matches

[, int $flags=0

[, int $offset=0

]]])

: int

php中使用pcre庫函式進行正則匹配,比如上例中的preg_match用於執行乙個正則匹配,常用來判斷一類字元模式是否存在。

pcre庫函式中,正則匹配模式使用分隔符與元字元組成,分隔符可以是非數字、非反斜線、非空格的任意字元。經常使用的分隔符是正斜線(/)、hash符號(#) 以及取反符號(~),例如:

/foo bar/

#^[^0-9]$#

~php~

如果模式中包含分隔符,則分隔符需要使用反斜槓(\)進行轉義。

/如果模式中包含較多的分割字元,建議更換其他的字元作為分隔符,也可以採用preg_quote進行轉義。

$p;元字元與轉義:

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

\ 一般用於轉義字元

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

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

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

[ 開始字元類定義

] 結束字元類定義

| 開始乙個可選分支

( 子組的開始標記

) 子組的結束標記

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

* 量詞,0 次或多次匹配

+ 量詞,1 次或多次匹配

自定義量詞結束標記

以身份證號碼驗證為例:

<?php 

/*身份證號碼分組驗證:513901-1990-07-11-2222*/

$pat

="/^(\d)(\d)(\d)(\d)(\d)$/"

;$rs

=preg_match

($pat

,'513901199007112222'

,$rsa);

var_dump

($rs);

print_r

($rsa);

$sfz

='510901199901231584'

;$pat

="/^(\d)(\d)(\d)(\d)(\d)$/"

;$rs

=preg_replace

($pat

,'出生年月:$2年$3月$4日'

,$sfz);

echo

$rs;

?>

慕課網上的正則案列:

<?php 

$user

=array

('name'

=>

'spark1985'

,'email'

=>

'[email protected]'

,'mobile'

=>

'13312345678');

//進行一般性驗證if(

empty

($user))

if(strlen

($user

['name'])

<6)

//使用者名稱必須為字母、數字與下劃線if(

!preg_match

('/^\w+$/i'

,$user

['name'])

)//驗證郵箱格式是否正確if(

!preg_match

('/^[\w\.]+@\w+\.\w+$/i'

,$user

['email'])

)//手機號必須為11位數字,且為1開頭if(

!preg_match

('/^1\d$/i'

,$user

['mobile'])

)echo

'使用者資訊驗證成功'

;

可以參考一下!!

最後,附上正規表示式的手冊:

正規表示式一 php常用正規表示式匹配函式

注 pattren 正規表示式 subject 匹配的目標資料 注 1 pre match只匹配一次,而pre match all匹配所有的 2 前者是一維陣列,而後者是二維陣列 3 函式返回值對應匹配次數 注 1 兩者支援陣列匹配替換,即 pattern,replacement,subject均可...

PHP 常用正規表示式

正規表示式用於字串處理 表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計...

php常用正規表示式

匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計2,ascii字元計1 匹配空白行的正規表示式 n s r 評注 可以用來刪除空白行 匹配ht...