php拆分为preg_split

Bas*_*sit 9 php regex split preg-split

我想转换以下拆分功能,我一直使用preg_split ..它有点混乱,因为值会不时改变..

$root_dir = 'www';
$current_dir = 'D:/Projects/job.com/www/www/path/source';
$array = split('www', 'D:/Projects/job.com/www/www/path/source', 2);
print_r($array);
Run Code Online (Sandbox Code Playgroud)

mar*_*rio 21

preg_split()类似于旧的ereg-function split().你只需要/.../像这样包含正则表达式:

preg_split('/www/', 'D:/Projects/job.com/www/www/path/source', 2);
Run Code Online (Sandbox Code Playgroud)

/这里的封闭斜杠实际上是正则表达式语法的一部分,而不是在字符串中搜索.如果www分隔符是可变的,则还应该对内部部分使用preg_quote().

但请注意,如果您只查找静态字符串,则不需要正则表达式.在这种情况下,你可以explode()像以前一样使用split():

explode('www', 'D:/Projects/job.com/www/www/path/source', 2);
Run Code Online (Sandbox Code Playgroud)

  • @Basit:通常不会.Explode执行简单的二进制搜索,而不必查找复杂/可选模式.它也是作为核心PHP函数实现的,因此可以更好地处理PHP字符串并直接生成PHP数组.preg_split()函数较慢,因为它通过libPCRE进行往返. - 所以explode()总是更快.(与preg_match()OTOH匹配的正则表达式通常比简单的PHP字符串函数算术更有效.) (4认同)