我试图使用Javascript正则表达式将整个段落分成句子。
段落:
I visited a bar in Kansas. At the entrance I see, "Welcome to the bar!" While leaving that place I see message, "Good night!"
I wondered how they changed the name.
我想将上一段分成句子。
<br>
)!#34;我想知道如何......)目前我正在使用正则表达式
var reg= /(\S.+?[.!?"'] | [.!?] + ["'!.?])(?=\s+[A-Z]|[^<br>]|$)/g;
但它没有将换行符(<br>
)视为单独的句子。它正在将这些词分成
要创建换行符,需要输入Shift + Enter键。
答案 0 :(得分:1)
我不确定我到底知道你需要什么,但这个正则表达式应该可以解决这个问题
var re = /(\w[^.!?]+[.!?]+"?)\s?/g;
您可以看到matches here(请注意正则表达式右侧的全局g
)。我相信它可以根据你的需要正确分割比赛。如果有问题,请告诉我。
代码应该是(直接来自http://regex101.com)
var re = /([^.!?]+[.!?]"?)\s?/g;
var str = 'I visited a bar in Kansas. At the entrance I see, "Welcome to the bar!" While leaving that place I see message, "Good night!"\nI wondered how they changed the name.';
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}