我正在解析文本,并且在换行符处拆分了文本。但是我需要保留一些换行符。幸运的是,所有这些换行符都以大写字母开头,并且前面没有句点。
查看其他操作系统的答案,我得到了.replace(/(?<!.)[A-Z]/, /\n$0/);
哪些不起作用。
任何帮助表示赞赏。
例子:
亚当出去散步夏娃打了个盹。
进入
亚当去散步
夏娃打了个盹。
您的代码中的问题:
lookbehind
.试试这个正则表达式:
.replace(/(^|[\s\S])([A-Z])/g, "$1\n$2");
我认为您想要的是这样的正则表达式:
replace(/([^\.])\n([A-Z])/g, "$1|$2")
它将用管道替换您要保留的新行。然后你可以在剩余的新行上进行拆分。然后将这些管道字符转换回结果中的新行。
为了说明,我在http://jsfiddle.net/tVR4b/上整理了一个 JSFiddle 。
根据原始海报的评论进行编辑
修改后的正则表达式将是:
.replace(/(\.)\n([A-Z])/g, "$1|$2");
修改后的 JSFiddle 位于http://jsfiddle.net/tVR4b/2/。