PHP 正規表示式常用的函式

2021-07-09 02:01:22 字數 3786 閱讀 1861

php正規表示式常用的函式:

int preg_match ( string

$pattern , string

$subject [, array &$matches [, int

$flags = 0 [, int

$offset = 0 ]]] )

int preg_match_all ( string

$pattern , string

$subject [, array &$matches [, int

$flags = preg_pattern_order [, int

$offset = 0 ]]] )

不同之處:

1、preg_match()第三個引數是可選的,preg_match_all()第三個引數是必填的

2、preg_match()在匹配$subject時候只會匹配一次,preg_match_all()會把$subject字串中所有符合$pattern的結果都匹配出來。

相同之處:

1、都會把匹配的結果放在$matches這個陣列中。

2、都有乙個整型的返回值,表示匹配到結果的次數,如果返回0表示沒有匹配到。根據返回的次數,可以判斷出$matches有多少匹配出來的鍵值對。因為preg_match()只會匹配一次,所以返回值只有0和1。

提示 &變數是引用傳遞

例子:

$pattern = '/[0-9]/';

$subject = 'weuyr3ui76as83s0ck9';

$m1 = $m2 = array();

$t1 = preg_match($pattern, $subject, $m1);

$t2 = preg_match_all($pattern, $subject, $m2);

var_export($m1);

var_export($m2);

echo

$t1;

echo

$t2;

列印結果:

array

( [0] => 3

)array

( [0] => array

([0] => 3

[1] => 7

[2] => 6

[3] => 8

[4] => 3

[5] => 0

[6] => 9

))17

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int

$limit = -1 [, int &$count ]] )

mixed preg_filter ( mixed $pattern , mixed $replacement , mixed $subject [, int

$limit = -1 [, int &$count ]] )

這兩個函式的功能很相似,參數列完全相同,功能完全一致,只是返回結果有一點不同,preg_filter()返回值保留發生替換的字串(陣列替換時,$subject是陣列),而preg_filter()則返回$subject的全部陣列。

把匹配的字串用$replacement來替換,其中str_repalce()是preg_replace()的子集

例子:

$pattern = '/[0-9]/';

$replacement = '替換';

$subject = array('weuy', 'r3ui', '76as83', 's', '0ck9');

$str1 = preg_replace($pattern, $replacement, $subject);

$str2 = preg_filter($pattern, $replacement, $subject);

var_export($str1);

var_export($str2);

列印:

array

( [0] => weuy

[1] => r替換ui

[2] => 替換替換as替換替換

[3] => s

[4] => 替換ck替換

)array

( [1] => r替換ui

[2] => 替換替換as替換替換

[4] => 替換ck替換

)

array preg_grep ( string

$pattern , array

$input

[, int $flags=0

])

閹割版的preg_filter()函式,沒有替換功能,只把匹配出來的字串陣列返回。

例子:

$pattern = '/[0-9]/';

$subject = array('weuy', 'r3ui', '76as83', 's', '0ck9');

$str3 = preg_grep($pattern, $subject);

var_export($str3);

列印:

array

( [1] => r3ui

[2] => 76as83

[4] => 0ck9

)

array preg_split ( string

$pattern , string

$subject [, int

$limit = -1 [, int

$flags = 0 ]] )

根據$pattern分割目標字串

explode()是preg_split()的子集

例子:

$pattern = '/[0-9]/';

$subject = '你3好5我,2世界!';

$arr = preg_split($pattern, $subject);

var_export($arr);

列印

array

( [0] => 你

[1] => 好

[2] => 我,

[3] => 世界!

)

string preg_quote ( string

$str

[, string

$delimiter

=null

])

正則運算子轉義

正規表示式特殊字元有: . \ + * ? [ ^ ] $ ( )  =! < > | : -
例子:

$strstr = 'qwer[1234]';

$strstr = preg_quote($strstr);

var_export($strstr);

列印:

qwer\

\[1234\]

都是以preg_開頭

除preg_quote函式外,第乙個引數都是正規表示式

preg_match() -表單驗證等

preg_replace() -非法詞語過濾等

PHP 正規表示式常用函式

1 preg match 函式原型 int preg match string pattern,string content array matches preg match 函式在 content字串中搜尋與 pattern給出的正規表示式相匹配的內容。如果提供了 matches,則將匹配結果放入...

正規表示式 常用正規表示式

一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...

正規表示式 常用正規表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 4 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 或者 1 3...