这个问题与use preg_split instead of split非常相似,但我对我正在清除的正则表达式有一些疑惑。分裂为preg_split
试图更新一些现有的split()函数来使用preg_split()来代替,并且我得到一些不清楚的结果。运行下面的代码会给我不同长度的数组,我不知道为什么。
从我可以看到split \ n匹配\ n与可能\ r事先。 我认为preg_split也是这样做的,但为什么它会创建2个分割?这是否与懒惰/贪婪匹配?
演示代码:
$test = "\r\n";
$val = split('\r?\n', $test); //literal interpretation of string
$val_new = split("\r?\n", $test); //php understanding that these are EOL chars
$val2 = preg_split('/\r?\n/', $test);
var_dump($val); // returns array(1) { [0]=> string(2) " " }
var_dump($val2); // returns array(2) { [0]=> string(0) "" [1]=> string(0) "" }
编辑:增加了基于Kolinks评论$ val_new因为他们帮助清理我对问题的理解,可能是使用的另一个太
啊哈,这是现在完美的意义,并帮助我解决了我的问题。非常感谢您的明确解释 - 只要我允许,将其标记为答案 – 2012-04-23 16:29:05