php的正则处理函数小结

时间:2010-01-22 08:38:13  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:R>preg_grep()返回一个数组,其中包括了input数组中与给定的pattern模式相匹配的单元。flags可以是以下标记:PREG_GREP_INVERT如果传递入此标记,preg_grep()会返回输入数组中...
  正文:

preg_grep

(PHP 4, PHP 5)

preg_grep --  返回与模式匹配的数组单元

说明

arraypreg_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 -- 进行正则表达式匹配

说明

intpreg_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参数自PHP4.3.0 起可用。

preg_match()返回pattern所匹配的次数。要么是 0 次(没有匹配)或 1 次,因为preg_match()在第一次匹配之后将停止搜索。preg_match_all()则相反,会一直搜索到subject的结尾处。如果出错preg_match()返回FALSE

提示:如果只想查看一个字符串是否包含在另一个字符串中,不要用preg_match()。可以用strpos()或strstr()替代,要快得多。

上面是手册里对preg_match()的说明,我认为这个函数的功用在于他可做来做验证,也就是某字符串是否符合某特定要求。其局限是上面所说的要么匹配0次,要么1次。并且返回值是匹配次数。当需要全匹配时可使用preg_match_all().另外值得一提的是$matches数组的作用,可做自模式的返回值,有时很有用。

例:

<?

if (preg_match ("/(/bweb/b)/s(/d)/i", "PHP is the web 45 scripting web 34 language of choice.",$match)) {
    print "A match was found.";
 print_r($match);
} else {
    print "A match was not found.";
}

?>

<?php
// 从 URL 中取得主机名

"php的正则处理函数小结"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/PHP/12171.html

 1/6    1 2 3 4 5 6 下一页 尾页


关键字:

关于《php的正则处理函数小结》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td