2011-07-30 23 views
1

如果我有以下字符串PHP preg_split反正保持分割字符串?

$string = " 
0001 

a 
b 
c 
d 
e 

0002 

f 
g 
h 
i 
j 
"; 

我與$r = preg_split("/\d{4}\n/", $string);分裂它,這工作正常,但我也希望包括分割字符串..

即在目前這給了我

Array [0] { 

a 
b 
c 
d 
e 
} 

=> [1] { 

f 
g 
h 
i 
j 
} 

,但我希望它包括分頻器即

Array [0] { 
0001 

a 
b 
c 
d 
e 
} 

=> [1] { 
0002 

f 
g 
h 
i 
j 
} 

希望是有道理的..

感謝

回答

6

你可以使用一個lookahead[docs]

preg_split("/(?=\d{4})/", $string, -1, PREG_SPLIT_NO_EMPTY) 

DEMO

不知道爲什麼你有你的<br/>表達。你的字符串中沒有HTML(至少在本例中沒有)。

1

改爲使用preg_match_all。

preg_match_all("/\d{4}[^\d]+/", $string, $matches); 

這些匹配將包含您的字符串的所有部分,以4位數字開頭,並在下一位數字之前結束。

您還可以使用括號過濾掉<br>