REGEX:在没有期间的大写字母之前添加换行符

时间:2013-11-01 16:14:34

标签: jquery regex parsing

我正在解析文本,我将文本拆分为换行符。但我需要保留一些新的内容。幸运的是,所有这些新行都以大写字母开头,并且之前没有句号。

查看其他操作系统答案,我得到了.replace(/(?<!.)[A-Z]/, /\n$0/);无效。

感谢任何帮助。

示例:

  亚当去散步,小睡了。

  亚当去散步了

     夏娃小睡了。

2 个答案:

答案 0 :(得分:1)

代码中的问题:

  1. Javascript不支持lookbehind
  2. DOT与新线不匹配
  3. replacement参数是一个字符串
  4. 试试这个正则表达式:

    .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/