background image

下面整理了 php 中正则的常用函数代码,方便大家学习 php 正则
preg_grep
(PHP 4, PHP 5)
preg_grep -- 返回与模式匹配的数组单元
说明
array preg_grep ( string pattern, array input [, int flags] )
preg_grep() 

 

返回一个数组,其中包括了 input 

 

数组中与给定的 pattern 模式相匹配的单元。

flags 可以是以下标记:
PREG_GREP_INVERT
如果传递入此标记,preg_grep() 

 

会返回输入数组中不匹配给定 pattern 的单元。本标记自 

PHP 4.2.0 起可用。

 

自 PHP 4.0.4 起,preg_grep() 返回的结果使用从输入数组来的键名进行索引。如果不希望

 

这样的结果,用 array_values()   

对 preg_grep() 返回的结果重新索引。

 上 面 是 手 册 上 对 preg_grep() 的 说 明 。 首 先 这 是 perl 兼 容 的 正 则 函 数 , 所 以 我 猜 想
preg_grep

 

的意思是 p(perl)reg(regular)_grep,其特点是可做用于数组,通过自己扩展,可用

做多维数组中的正则匹配,并且可以通过 flags

 

参数返回 匹配或者非匹配数组。其效率比

用 foreach(...){if...}结构快很多(未验证),而且可匹配复杂模式。在搜索、分检等应用中
用途不小。
例:
<?
$arr = array('abc'=>12.213,'bb'=>12345,'ba'=>23.2321,34.3,'23'=>'3.3','23434'=>'bbb');
// 返回所有含有浮点数的数组元素。
$fl_array = preg_grep ("/^(\d+)?\.\d+$/", $arr);
print_r($fl_array);
?>

preg_match
(PHP 3 >= 3.0.9, PHP 4, PHP 5)
preg_match -- 进行正则表达式匹配
说明
int preg_match ( string pattern, string subject [, array matches [, int flags]] )

 

在 subject 

 

字符串中搜索与 pattern 给出的正则表达式相匹配的内容。

 

如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的
文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
flags 可以是下列标记:
PREG_OFFSET_CAPTURE
如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变

 

了返回的数组的 值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二

 

项为其偏移量。本标记自 PHP 4.3.0 起可用。
flags 

 

参数自 PHP 4.3.0 起可用。

preg_match()  

 

返回 pattern 

 

所匹配的次数。要么是 0 

 

次(没有匹配)或 1  次,因为 

preg_match() 在第一次匹配之后将停止搜索。preg_match_all() 则相反,会一直搜索到

 

subject 

 

的结尾处。如果出错 preg_match() 

 

返回 FALSE。

提示: 

 

如果只想查看一个字符串是否包含在另一个字符串中,不要用 preg_match()。可以用