我正在尝试使用 jquery 将一段文本拆分成句子。但是,我遇到了一些句子会被错误拆分的情况。
如下案例
我的答案是 5.6 个答案是错误的。
鉴于上述情况,如果没有空格,则不能拆分两个句子。
目前我这样做的方式只是查找期间的索引,这不起作用。有没有办法使用正则表达式匹配方法来做到这一点?
提前致谢!
句子拆分是一个充满异常的问题。考虑一下:
对脾气暴躁的先生来说,那是一段黑暗时期,他被恰当地打了个勾。
大多数人寻找后面跟着一些空格的句点,而不是前面一些已知是首字母缩略词的特殊单词,如Mr
.
(?<!Mr|Mrs|Dr)\.\s+
然后split
在这个。
即使这也不是那么好,因为它不考虑随机首字母,所以James T. Kirk
会打败它。如果您不允许这样做((?<!Mr|Mrs|^[A-Z]|\s[A-Z])
在后面),那么您将无法阻止以单个字母 ( Look at exhibit B.
) 结尾的句子。
难的。
您可以检查'.'
空格。像这样:
var paragraph = 'se tenc one. se tenc two. se tenc 5.6 one. ';
var sentenses = paragraph.split(/\.[ ]+/g);
alert(sentenses);
它会显示se tenc one,se tenc two,se tenc 5.6 one,
。
现在您可以添加其他句尾字符,例如'!?;'
.
var paragraph = 'se tenc one. se tenc two. se tenc 5.6 one. ';
var sentenses = paragraph.split(/[\.!?;][ ]+/g);
alert(sentenses);