2011-07-30 4 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 
} 
을 포함 할 의미가 5,

희망 ..

감사

답변

6

당신이 사용할 수있는 lookahead[docs] :

preg_split("/(?=\d{4})/", $string, -1, PREG_SPLIT_NO_EMPTY) 
당신이 <br/>을 왜

DEMO

이 몰라 당신의 표현. 문자열에는 HTML이 없습니다 (적어도이 예에서는 그렇지 않습니다).

1

대신 preg_match_all을 사용하십시오.

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

일치 항목에는 4 자리로 시작하여 다음 자리 바로 끝나는 문자열의 모든 부분이 포함됩니다.

대괄호를 사용하여 <br>을 필터링 할 수도 있습니다.

관련 문제