首页后端开发PHPPHP中通过正则表达式分割字符串的方法是什么

PHP中通过正则表达式分割字符串的方法是什么

时间2024-03-22 13:49:03发布访客分类PHP浏览631
导读:相信很多人对“PHP中通过正则表达式分割字符串的方法是什么”都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助 之前的文章中我们了解了PHP中执行全局正则表达式的匹配、检测与给定模式匹配的数组元素、执行一个正...
相信很多人对“PHP中通过正则表达式分割字符串的方法是什么”都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助


之前的文章中我们了解了PHP中执行全局正则表达式的匹配、检测与给定模式匹配的数组元素、执行一个正则表达式的搜索和替换这样的操作我们可以通过preg_match() 函数、preg_match_all()函数、preg_grep() 函数和preg_replace() 函数就能够实现,使用正则表达式的主要目的就是为了通过简单的办法来实现强大的功能。

其中对于正则表达式与字符串之间的操作还有很多,其中就包括使用正则表达式分割字符串,那接下来我们就一起来看一下,我们怎样通过字符表达式来分割字符串。

preg_split() 函数

在PHP中 preg_split() 函数通过一个正则表达式来分割字符串,该函数的语法格式如下:

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

其中需要注意的是:

$pattern表示用于匹配的模式,也即正则表达式;$subject表示要分隔的字符串;$limit是个可选参数,如果指定,就将限制分隔得到的子串最多只有 limit 个,并且最后一个子串将包含所有剩余部分。limit 值为 -10NULL 时都代表“不限制”,建议使用 NULL。

$flags是个可选参数,它有 3 个取值。若设置为 PREG_SPLIT_NO_EMPTY,则 preg_split() 将返回分隔后的非空部分。若设置为 PREG_SPLIT_DELIM_CAPTURE,则分隔的模式中的括号表达式将被捕获并返回。若设置为 PREG_SPLIT_OFFSET_CAPTURE,则对于每一个出现的匹配返回时会附加字符串偏移量。

这将会改变返回数组中的每一个元素,使每个元素成为一个由第 0 个元素为分隔后的子串、第 1 个元素为该子串在 subject 中的偏移量组成的数组。返回值就是返回一个使用 pattern 分割 subject 字符串后得到的子串组成的数组。

接下来我们通过示例来看一下 preg_split() 函数的用法,示例如下:

?php
    echo "pre>
    ";
    
    $subject = 'PHP中文网:http://www.php.cn/, baidu百度:http://www.baidu.com/';
    
    $pattern = '/[\s,:]+/';
    
    print_r( preg_split($pattern, $subject) );
    
    print_r( preg_split($pattern, $subject, 3) );
    
?>
    

输出结果:

示例如下:

?php
$str = 'father mother andyou';
    
var_dump($str);
    
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
    
var_dump($chars);
    
?>

输出结果:

由上述示例能够看出,通过preg_split() 函数能够完成通过一个真个表达式来分割字符串。接下来我们来看一下,怎样对正则表达式来进行转义。

PHP preg_quote() 函数

普通字符包括没有显式指定为元字符的所有可打印和不可打印字符,包括所有大小写字母、数字、标点符号和一些符号。最简单的正则表达式是用于搜索字符串相比较的单个普通字符。例如,单字符正则表达式/A/会始终匹配字母 A。

除普通字符之外,正则表达式还可以包含“元字符”。元字符可分为单字符元字符和多字符元字符。例如,元字符\d,它与数字字符相匹配。

PHP preg_quote() 函数用来对正则表达式字符串进行转义,也就是在特殊字符前边增加一个反斜杠\,该函数的语法格式如下:

preg_quote($str [, $delimiter = NULL])

其中需要注意的是:

$str表示正则表达式字符串;$delimiter是个可选参数,额外增加的需要转义的字符。如果指定了 $delimiter 参数,被指定的字符也会被转义。这通常用于转义 PCRE 函数使用的分隔符。 / 是最常见的分隔符。

preg_quote() 函数会向参数 $str 提供的每个正则表达式的字符前增加一个反斜线。这通常用于一些运行时字符串需要作为正则表达式进行匹配的时候。

正则表达式特殊字符有:. \ + * ? [ ^ ] $ ( ) { } = ! > | : - 。要清楚/不是正则表达式特殊字符。

接下来我们通过示例来看一下使用 preg_quote() 函数对字符串进行转义,示例如下:

?php
    $url = 'http://www.baidu.com/';
    
    echo preg_quote($url) . "br />
    ";
    
    echo preg_quote($url, "/") . "br />
    ";
    
    $textbody = "baidu百度 is *very* good to study.";
    
    $word     = "*very*";
    
    echo preg_replace( "/".preg_quote($word)."/", "i>
    ".$word."/i>
    ", $textbody );
    
?>
    

输出结果:

示例如下:

?php
$keywords = '$40 for a g3/400';
    
$keywords = preg_quote($keywords, '/');
    
echo $keywords;
     // 返回 \$40 for a g3\/400
?>
    

输出结果:

上述示例中,便是通过preg_quote() 函数用来对正则表达式字符串进行转义。


现在大家对于PHP中通过正则表达式分割字符串的方法是什么的内容应该都清楚了吧,希望大家阅读完这篇文章能有所收获。最后,想要了解更多PHP中通过正则表达式分割字符串的方法是什么的知识,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

PHP正则表达式

若转载请注明出处: PHP中通过正则表达式分割字符串的方法是什么
本文地址: https://pptw.com/jishu/650582.html
idle如何生成程序文件,具体操作是什么 SQL的server之数据库应用系统基础的相关问题

游客 回复需填写必要信息