函数preg_grep()
该函数与preg_match()函数和preg_match_all()不同的是匹配数组中的元素,返回与正则表达式匹配的数组单元,该函数的语法格式如下:
array preg_grep(string pattren,array input)
该函数返回一个数组,其中包括了第二个参数input数组中与给定的第一个参数pattern模式相匹配的单元。对于输入数组input中的每个元素,只进行一次匹配。该函数的使用代码示例如下所示:
<?php $preg = '^d{3,4}-?\d{7,8}'; $arr = array('043212345678','0431-7654321','12345678'); $preg_arr = preg_grep($preg,$arr); var_dump($preg_arr); ?>
在数组$arr中匹配具有正确格式的电话号(010-1234****等),并保存到另一个数组中。
字符串处理函数strstr()、strpos()、strrpos()、substr()
如果只是查找一个字符串中是否包含某个子字符串,建议使用strstr()或strpos()函数,如果只是简单地从一个字符串中取出一段子字符串,建议使用substr()函数。虽然PHP提供的字符串处理函数不能完成复杂的字符串匹配,但处理一些简单的字符串匹配,执行效率则要比使用正则表达式稍高一些。
函数strstr()搜索一个字符串在另一个字符串中的第一次的出现,该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回FALSE。该函数对大小写敏感,如需进行大小写不敏感的搜索,可以使用stristr()函数。该函数有两个参数,第一个参数提供被搜索的字符串,第二个参数为所搜索的字符串,如果该参数是数字,则搜索匹配数字ASCII值的字符。该函数的使用代码如下所示:
<?php echo strstr("this is a test!","test"); echo strstr("this is a test!",115); ?>
函数strpos()返回字符串在另一个字符串中第一次出现的位置,如果没有找到该字符串,则返回false。函数strrpos()和函数strpos()相似,用来查找字符串在另一个字符串中最后一次出现的位置。这两个函数对大小写敏感,如需进行对大小写不敏感的搜索,可以使用stripos()和strripos()函数。函数substr()则可以返回字符串的一部分。
以上是与Perl兼容的正则表达式函数(二)的详细内容。更多信息请关注PHP中文网其他相关文章!