有人能告诉我php中split和preg_split的主要区别吗? 因为这两个函数都适用于正则表达式。
由于
答案 0 :(得分:2)
split
使用POSIX ERE,preg_split
使用PCRE。请参阅此PHP manual page on the differences of PCRE from POSIX ERE以及flavor comparison on Regular-Expressions.info。
答案 1 :(得分:0)
简单,分裂():
警告
自PHP 5.3.0起,此功能已被弃用。依靠这个 功能非常沮丧。
答案 2 :(得分:0)
preg_split()使用与PERL兼容的正则表达式。
答案 3 :(得分:0)
preg_split()
,它使用与Perl兼容的正则表达式语法,它更快。替代split()
。
答案 4 :(得分:0)
split()使用POSIX作为正则表达式扩展,而preg_split()使用PCRE(Perl兼容正则表达式)作为正则表达式扩展。 PCRE扩展了正则表达式功能。
另一个主要区别是split不区分大小写,而preg_split使用区分大小写的正则表达式。对于区分大小写的正则表达式,我们曾使用spliti。
(http://phppot.com/php/reasons-why-split-is-deprecated/以上的所有内容)
所以,根据php.net(http://php.net/manual/en/function.preg-split.php),PCRE和POSIX正则表达式之间的主要区别
自PHP 5.3.0起,不推荐使用POSIX Regex扩展。有一个 POSIX正则表达式与PCRE正则表达式之间的差异数量。这一页 列出转换时需要知道的最值得注意的内容 到PCRE。
- PCRE函数要求模式由分隔符括起来。
- 与POSIX不同,PCRE扩展没有用于不区分大小写匹配的专用函数。相反,这是使用i支持的 (PCRE_CASELESS)模式修饰符。其他图案修饰符也是 可用于更改匹配策略。
- POSIX函数找到最左边匹配的最长时间,但PCRE在第一个有效匹配时停止。如果字符串根本不匹配 没有区别,但如果它匹配,它可能会产生戏剧性的影响 结果匹配和匹配速度。为了说明这一点 差异,请考虑“掌握常规”中的以下示例 表达“由Jeffrey Friedl。使用模式 一个(个体经营)?(自给自足)?在字符串上用PCRE自给自足 将导致匹配自己,但使用POSIX结果将是 完整的字符串自足。两个(子)字符串都匹配 原始字符串,但POSIX要求结果最长。
- “字符类”的POSIX定义与PCRE的定义不同。简单括号表达式以匹配一组显式字符 支持PCRE字符类但POSIX的形式 整理元素,字符类和字符等价物 不支持。提供具有字符类的表达式 开始和结束都是:,。或者= PCRE的字符被解释 尝试使用这些不受支持的功能之一并导致a 编译错误。