我正在构建一个将段落拆分为句子的 Javascript 脚本。我现在正在将此代码与正则表达式一起使用:
paragraph.match( /[^\.!\?]+[\.!\?(?="|')]+(\s|$)/g );
这很好用,除了如果句子中有一个带有标点符号的单词,那么它将在那里拆分。因此,例如,如果我有一个句子,例如:Why is about.me so popular?
我希望它说这是一个句子并返回一个数组 like ['Why is about.me so popular?']
,但是使用这个正则表达式,它会在.
in处拆分它about.me
。我知道问题出在正则表达式的这一部分,[^\.!\?]
因为我说它在句子中不能有结束标记标点符号。所以我真正需要的是一个只允许不是标点符号后跟空格的字符。问题是我无法弄清楚如何做到这一点。
有任何想法吗?我试过[^\.!\?(?=\s)]
了,但没有奏效。有任何想法吗?
澄清:
我需要使用.match()
,因为我希望能够保留标点符号。