Home > php教程 > php手册 > body text

探讨PHP函数split()如何使用正则表达式切割字符串

WBOY
Release: 2016-06-13 11:07:29
Original
941 people have browsed it

对于初学者来说,掌握PHP中常用函数的用法,是其继续学习的基础。今天我们就为大家详细介绍有关说明
array split ( string $pattern, string $string [, int $limit] )

提示
preg_split() 函数使用了 Perl 兼容正则表达式语法,通常是比PHP函数split()更快的替代方案。如果不需要正则表达式的威力,则使用 explode() 更快,这样就不会招致正则表达式引擎的浪费。

本函数返回一个字符串数组,每个单元为 string 经区分大小写的正则表达式 pattern 作为边界分割出的子串。如果设定了 limit,则返回的数组最多包含 limit 个单元,而其中最后一个单元包含了 string 中剩余的所有部分。如果出错,则 split() 返回 FALSE。

将 /etc/passwd 中的前四个字段分割出来:

例 1839. PHP函数split()例子

<ol class="dp-xml">
<li class="alt"><span><span class="tag"></span><span class="tag-name">php</span><span> </span></span></li>
<li><span>list($user, $pass, $uid, $gid, $extra) =  </span></li>
<li class="alt"><span>split (":", $passwd_line, 5);  </span></li>
<li>
<span class="tag">?></span><span> </span>
</li>
</ol>
Copy after login

如果字符串中有 n 个与 pattern 匹配的项目,则返回的数组将包含 n+1 个单元。例如,如果没有找到 pattern,则会返回一个只有一个单元的数组。当然,如果 string 为空也是这样。

解析可能用斜线,点,或横线分割的日期:

例 1840. PHP函数split()例子

<ol class="dp-xml">
<li class="alt"><span><span class="tag"></span><span class="tag-name">php</span><span> </span></span></li>
<li><span>// 分隔符可以是斜线,点,或横线  </span></li>
<li class="alt">
<span>$</span><span class="attribute">date</span><span> = </span><span class="attribute-value">"04/30/1973"</span><span>;  </span>
</li>
<li><span>list($month, $day, $year) = split ('[/.-]', $date);  </span></li>
<li class="alt">
<span>echo "Month: $month; Day: $day; Year: $year</span><span class="tag"><span class="tag-name">br</span><span> </span><span class="tag">/></span><span>n";  </span></span>
</li>
<li>
<span class="tag">?></span><span> </span>
</li>
</ol>
Copy after login

想仿效 Perl 中类似的 @chars = split('', $str) 行为,请参考 preg_split() 或 str_split() 函数中的例子。

注意 pattern 是一个正则表达式。如果想要用的分割字符是正则表达式中的特殊字符,要先将其转义。如果觉得PHP函数split()(或其它任何 regex 函数)行为古怪的话,请阅读包含在 PHP 发行包中 regex/ 子目录下的 regex.7 文件。该文件是手册页面格式,可以用类似 man /usr/local/src/regex/regex.7 的命令来阅读
 


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template