編輯:好的,我無法閱讀,感謝Col Shrapnel的幫助。如果有人來這裏尋找同樣的東西來回答...... print_r(preg_split('/([\!|\?|\.|\!\?])/', $string, null, PREG_SPLIT_DELIM_CAPTURE));
分割字符串時保留分隔符
有沒有辦法在一組的分隔符分割字符串,並保留拆分後的位置和分隔符的字符(S) ?
例如,使用的!
?
.
!?
分隔符把這個:
$string = 'Hello. A question? How strange! Maybe even surreal!? Who knows.';
這個
array('Hello', '.', 'A question', '?', 'How strange', '!', 'Maybe even surreal', '!?', 'Who knows', '.');
目前我正在試圖用print_r(preg_split('/([\!|\?|\.|\!\?])/', $string));
捕捉分隔符爲子模式,但我沒有多少運氣。
爲什麼不閱讀函數的手冊頁?可能會有答案嗎?儘管要將分隔符作爲子模式來使用,您可以使用preg_match_all。但分割是最好的。只需養成一個習慣,先參閱手冊頁 – 2010-05-20 17:42:19
Erp。剛回到網頁上,我現在要去眼鏡商買一副眼鏡:/我要失明瞭。 謝謝你讓我再看一遍:P – JoeC 2010-05-20 17:46:07
請注意,你正在使用一個字符類。 '[\!| \?| \。| \!\?]'指的是字符'!','''','?'和'.'。你可能想要的是:'(!| \?| \。|!\?)'。或者用一個字符類:'([?。] |!\ ??)'。 – Gumbo 2010-05-20 17:50:54