【发布时间】:2016-01-05 09:58:03
【问题描述】:
使用regexr,我写了表达式/[\.!?] [A-Z]/g,使用3个假设来匹配句子:
- 句子以标点符号结尾:[.,!?](我不知道如何匹配双标点符号或组合...)
- 标点符号后面总是有一个或多个空格。
- 下一句以大写字母开头。 (99% 的情况是正确的,除了小写名词,例如 iDevices)
使用sed,我想获取这些匹配项,并将空格替换为\n 字符。我可以做一个匹配后的 $' 和一个匹配前的 $`,但是如何在匹配中替换?
如果有更好的方法将文本分成每行一个句子,我愿意接受替代方案。
无 bashisms:适用于 Linux、OS X 和 BSD
输入:
Vivamus fermentum semper porta。 Nunc diam velit,脂肪粒 tristique vitae,sagittis vel odio。 Maecenas convallis ullamcorper 奥特莱斯。 Curabitur ornare, ligula semper consectetur sagittis, nisi diam iaculis velit,id fringilla sem nunc vel mi。
输出:
Vivamus fermentum semper porta.
Nunc diam velit, adipiscing ut tristique vitae, sagittis vel odio.
Maecenas convallis ullamcorper ultricies.
Curabitur ornare, ligula semper consectetur sagittis, nisi diam iaculis velit, id fringilla sem nunc vel mi.
【问题讨论】: