JavaScript 将文本拆分为句子 . 如果前面没有数字



我正在尝试使用以下方法将文本解析为句子:

srt.replace(/(.+|:|!|?)(s|n|r|rn)/gm, "$1$2|").split("|");

这很好用,但是...如果一个句子以列表编号(即"1. some words"(开头,我得到:['1.', 'some words']

这是我第一次使用正则表达式,虽然我知道有一种方法可以查看,但我无法使用它。 如何将我的正则表达式更改为仅在 .如果前面没有数字字符?

最终使用了str.replace(/(?<!:)(n)s*/g, "$1|").replace(/(?<![0-9])(.+)s*/g, "$1|").replace(/(?+|!+)s*/g, "$1|").split("|")

我相信有一种更漂亮的方法来编写这个正则表达式,但作为一个菜鸟 - 我还不知道怎么做。这也包括: 1.如果在以下之后有新行,则不拆分: 2.多个点,问号和感叹号

这段代码旨在将文本拆分为"想法",这就是为什么我使用我所做的条件,可能不是简单的"拆分为句子"需求的正确逻辑。

最新更新