這個問題與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