php中split和preg_split的区别

时间:2012-02-09 10:56:41

标签: php

有人能告诉我php中split和preg_split的主要区别吗? 因为这两个函数都适用于正则表达式。

由于

5 个答案:

答案 0 :(得分:2)

答案 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   编译错误。
  •