如何将文本拆分成一系列句子?
示例文字:
给我一个海狸.给我一个海狸!给我一个海狸?炸我海狸没有.4?炸了我很多海狸......结束
应输出:
0 => Fry me a Beaver.
1 => Fry me a Beaver!
2 => Fry me a Beaver?
3 => Fry me Beaver no. 4?!
4 => Fry me many Beavers...
5 => End
Run Code Online (Sandbox Code Playgroud)
我尝试了一些我通过搜索在SO上找到的解决方案,但它们都失败了,特别是在第4句.
/(?<=[!?.])./
/\.|\?|!/
/((?<=[a-z0-9)][.?!])|(?<=[a-z0-9][.?!]\"))(\s|\r\n)(?=\"?[A-Z])/
/(?<=[.!?]|[.!?][\'"])\s+/ // <- closest one
Run Code Online (Sandbox Code Playgroud) 我试图拆分/爆炸/ preg_split一个字符串,但我想保留分隔符示例:
explode('/block/', '/block/2/page/2/block/3/page/4');
Run Code Online (Sandbox Code Playgroud)
预期结果 :
array('/block/2/page/2', '/block/3/page/4');
Run Code Online (Sandbox Code Playgroud)
不确定我是否必须循环然后重新为数组值添加前缀或者是否有更简洁的方法.
我用PREG_SPLIT_DELIM_CAPTURE尝试了preg_split(),但我得到了以下内容:
array('/block/, 2/page/2', '/block/, 3/page/4');
Run Code Online (Sandbox Code Playgroud)
这不是我想要的.任何帮助深表感谢.