编辑:好的,我无法阅读,感谢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