我想拆分文字
过公元年?因为无论你如何选择。简体字危及了对古代文学的研究输入!
使用这三个(或更多)?!。字符作为分隔符。
我当然可以这样做
$lines = preg_split('/[。,!,?]/u',$body);
但是我不希望结果行保留其结尾分隔符。句子也可能像啊。。。
或什么!??!!!!
答案 0 :(得分:5)
试试这个:
$lines = preg_split('/(?<=[。!?])(?![。!?])/u',$body);
它分隔在一个前面有一个分隔符但未后跟一个分隔符的位置。它不使用分隔符,如果有两个或多个连续的分隔符,它只匹配最后一个分隔符。
答案 1 :(得分:0)
在这种情况下,您想自己编写字符串拆分器。并保持连续的分隔符作为一个整体。 (您可以设置一个状态变量,指示它是在文本块还是分隔符块中)。
答案 2 :(得分:0)
您应该使用preg_match_all
代替preg_split
,即
preg_match_all("/[^?!。]+[?!。]+/u", $text, $res);
有关用法,请参阅http://www.ideone.com/rN7MB。