在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中返回每个出现的匹配结果的同时也获取其附属的字符串的偏移量。
例如:
- <?php
- $str = ‘This is www.phpdo.net.’;
- $chars = preg_split(‘/[ ,.]/’,$str,-1,PREG_SPLIT_NO_EMPTY); //-1说明没有限制
- print_r($chars);
- print(“\n”);
- $chars = preg_split(‘/[ ,.]/’,$str,-1,PREG_SPLIT_DELIM_CAPTURE);
- print_r($chars);
- print(“\n”);
- $chars = preg_split(‘/[ ,.]/’,$str,-1,PREG_SPLIT_OFFSET_CAPTURE);
- print_r($chars);
- print(“\n”);
- ?>
还记得“.”和“-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 ) )






最新评论
再来浏览一次,上次没看懂。
:evil: 不错啊
博主的技术文章很有帮助
好文章,关注啦!谢谢博主分享
你好 来学习下
我来了哦
第一次来访留个记号
呵呵,哥们越来越勤奋了啊 :
php点点通,(www.ph
:eek: :eek: