javascript – 正则表达式匹配标点空间但保留标点符号

我有一个很大的段落字符串,我试图使用
JavaScript的.split()方法将其拆分成句子.我需要一个匹配句点或问号[?.]后跟空格的正则表达式.但是,我需要在结果数组中保留句点/问号.如果没有JS的正面观察,我怎么能这样做呢?

编辑:示例输入:
“这是第1句.这是第2句?这是第3句.”
示例输出:
[“这是第1句”,“这是第2句?”,“这是第3句.”]

最佳答案 这个正则表达式将起作用

([^?.]+[?.])(?:\s|$)

Regex Demo

JS演示

Ideone Demo

var str = 'This is sentence 1. This is sentence 2? This is sentence 3.';
var regex = /([^?.]+[?.])(?:\s|$)/gm;
var m;

while ((m = regex.exec(str)) !== null) {
    document.writeln(m[1] + '<br>');
}
点赞