现在的位置: 首页php-基础语法>正文
在PHP中如何用正则表达式进行字符串分割  
发表于764 天前 php-基础语法 评论关闭

PHP中可以用正则表达式使得字符串分割的函数是:preg_split。语法如下:

Array preg_split(string pattern,string subject,[ ,int limit [, int flags]])

Pattern是进行匹配的正则表达式,subject是要被匹配的字符串,limit是要匹配的次数,flags是一些特殊的标记。

这些标记有三种:

  • PREG_SPLIT_NO_EMPTY:PHP中的匹配结果中的非空字符串将不会被返回。
  • PREG_SPLIT_DELIM_CAPTURE:在PHP中进行匹配时,定界符中的空字符串也会被返回。
  • PREG_SPLIT_OFFSET_CAPTURE:在PHP中返回每个出现的匹配结果的同时也获取其附属的字符串的偏移量。

例如:

  1. <?php
  2. $str = ‘This is www.phpdo.net.’;
  3. $chars = preg_split(‘/[ ,.]/’,$str,-1,PREG_SPLIT_NO_EMPTY); //-1说明没有限制
  4. print_r($chars);
  5. print(“\n”);
  6. $chars = preg_split(‘/[ ,.]/’,$str,-1,PREG_SPLIT_DELIM_CAPTURE);
  7. print_r($chars);
  8. print(“\n”);
  9. $chars = preg_split(‘/[ ,.]/’,$str,-1,PREG_SPLIT_OFFSET_CAPTURE);
  10. print_r($chars);
  11. print(“\n”);
  12. ?>

还记得“.”和“-1”的意义吗?“.”是匹配除了换行符以外的任意字符,“-1”是对字符匹配没有限制。

结果:

Array ( [0] => This [1] => is [2] => www [3] => phpdo [4] => net )

Array ( [0] => This [1] => is [2] => www [3] => phpdo [4] => net [5] => )

Array ( [0] => Array ( [0] => This [1] => 0 ) [1] => Array ( [0] => is [1] => 5 ) [2] => Array ( [0] => www [1] => 8 ) [3] => Array ( [0] => phpdo [1] => 12 ) [4] => Array ( [0] => net [1] => 18 ) [5] => Array ( [0] => [1] => 22 ) )

报歉!评论已关闭.

不想听你唠叨×