文章教程

15.4.3进行正则表达式匹配的函数

9/17/2020 9:26:54 PM 人评论 次浏览

15.4.3 进行正则表达式匹配的函数

PERL兼容的正则表达式函数preg_match(),用来完成对正则表达式的匹配。该函数的语法如下所示。


int preg_match(string$pattern,string$subject[,array$matches[,int$flag]])


该函数在参数字符串subject中搜索与参数$pattern给出的正则表达式相匹配的内容。该函数的第3个参数是可选参数,该参数是一个数组,如果提供了第3个参数$matches,则其会被搜索的结果所填充。$matches[0]包含与整个模式匹配的文本,$matches[1]将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。函数perg_match()还有第4个参数,也是可选的,对这个参数,这里不再详细叙述。

函数perg_match()返回对$pattern的匹配次数,该返回值要么是0次(没有匹配)或1次,因为函数preg_match()在第一次匹配之后将停止继续匹配。如果出错,函数preg_match()返回FALSE。代码15-9演示了该函数的用法。

代码15-9 使用PERL兼容正则表达式函数preg_match()进行正则表达式匹配15-9.php


01 <?php

02 $str_arr=array(

03 "PHP是优秀的Web脚本语言",

04 "Perl的文本处理功能很强大"

05 );//定义字符串数组

06

07 foreach($str_arr as$str)

08 {

09 //模式界定符后面的修正符"i"表示匹配时不区分大小写字母

10 if(preg_match("/php/i",$str))

11 {

12 echo"在字符串'$str'中找到对'php'的匹配";

13 echo"<br/>";

14 echo"<br/>";

15 }

16 else

17 {

18 echo"在字符串'$str'中<b>未</b>找到对'php'的匹配";

19 echo"<br/>";

20 echo"<br/>";

21 }

22 }

23 ?>


【代码解析】在这段代码中,通过函数preg_match()使用正则表达式/php/i,在两个给定的字符串中匹配字符串php。因为该模式是传给PERL兼容的正则表达式函数的参数,所以模式前后加上了//,称为/php/i。读者可能已经注意到,这里的模式最后加了一个字符i,这个字符就是15.4.1小节介绍的修正符,它的作用是匹配时不区分大小写字母。这段代码的执行结果如图15-10所示。

图 15-10 使用正则表达式匹配函数preg_match()

教程类别