我想分割文本
過公元年?因爲無論你如何選擇。簡體字危及了對古代文學的研究輸入!
分割各種分隔符,同時保持分隔符?
使用這三個(或更多)?!字符作爲分隔符。 我可以但我wan't有結果行保持他們的結束符與
$lines = preg_split('/[。,!,?]/u',$body);
做,當然這一點。另外一個句子可能會這樣結束啊。。。
或什麼!??!!!!
我想分割文本
過公元年?因爲無論你如何選擇。簡體字危及了對古代文學的研究輸入!
分割各種分隔符,同時保持分隔符?
使用這三個(或更多)?!字符作爲分隔符。 我可以但我wan't有結果行保持他們的結束符與
$lines = preg_split('/[。,!,?]/u',$body);
做,當然這一點。另外一個句子可能會這樣結束啊。。。
或什麼!??!!!!
試試這個:
$lines = preg_split('/(?<=[。!?])(?![。!?])/u',$body);
它分裂在那個正通過您的分隔符前面一個而不是跟着一個位置。它不會使用分隔符,並且如果有兩個或更多連續的分隔符,它只會在最後一個分隔符之後匹配。
在這種情況下,您希望自己編寫字符串拆分器。並保持連續的分隔符作爲一個整體。 (你可以設置一個狀態變量來指示它是否在文本塊或分隔符塊中)。
您應該使用preg_match_all
代替preg_split
,即
preg_match_all("/[^?!。]+[?!。]+/u", $text, $res);
的用法請參見http://www.ideone.com/rN7MB。
作品完美! – Moak 2010-08-09 09:03:58