我正在解析文本,我将文本拆分为换行符。但我需要保留一些新的内容。幸运的是,所有这些新行都以大写字母开头,并且之前没有句号。
查看其他操作系统答案,我得到了.replace(/(?<!.)[A-Z]/, /\n$0/);
无效。
感谢任何帮助。
示例:
亚当去散步,小睡了。
到
亚当去散步了 夏娃小睡了。
答案 0 :(得分:1)
代码中的问题:
lookbehind
。试试这个正则表达式:
.replace(/(^|[\s\S])([A-Z])/g, "$1\n$2");
答案 1 :(得分:0)
我认为你想要的是这样的正则表达式:
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/ 。