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...