1

我正在尝试使用正则表达式从段落中提取句子。请注意,我正在尝试使用 java 脚本来实现这一点。我尝试了一些用其他语言完成的方法,导致语法错误。我希望它不要考虑像先生,夫人这样的头衔。等等……作为句子的结尾。还要对诸如“Michel G”之类的字符串敏感。而不是将其解释为句末。请在下面找到我的正则表达式。我尝试了很多方法,但仍然无法正常工作。任何帮助将非常感激。

var sentences = $(this).text()
.replace(/(((?![.!?]['".”]?\s).)*[.!?]['".”]?)(\s|$)/g,
'<span class="sentence"> $1 </span> $3<div class="commentform">' + formdialog + '</div>');

要提取的段落

“他正试图推动,”一位不愿透露姓名的美国高级官员说,由于事情的微妙性,他补充说,谈判陷​​入僵局,“既是因为短期的刺激因素,也是因为谈判进展缓慢。”在基本问题上。” 克里先生是一个不知疲倦的推动者,他经常出现在耶路撒冷和拉马拉,导致 7 月恢复会谈,他最近与以色列总理本雅明·内塔尼亚胡和巴勒斯坦民族权力机构主席马哈茂德·阿巴斯一次会晤了几个小时,在纽约、伦敦和罗马等中立地点。现在,在处理了一段时间的其他问题后,他正在返回该地区重新投入到这个过程中。

Michael R. Gordon自沙特阿拉伯利雅得对本文有报道贡献。

4

1 回答 1

2

是的。你没有做坏事,但你面临的问题是当一个点结束一个句子时,比如 inMr. KerryMichael R. Gordon。恐怕没有简单的解决方案。

根据您对要提取的段落的了解,您可以尝试在单个字母后跟一个点和常用缩写后跟一个点之后禁止匹配,但是您仍然会在 'mr. 克里与总统交谈。“你认为你要去哪里,先生。”
因此,您必须确定误报(实际上是一个句子时分成两部分)和反例(不应该拆分时)的严重程度,并相应地调整您的解决方案。

请注意,这是一个难题
通常,OpenOffice 和 Word 等文字处理器会尝试检测句子何时结束,以自动将以下字母转换为大写。大多数智能手机键盘也尝试这样做。我从来没有遇到过能完美做到这一点的人;像我给他们绊倒的例子。

于 2013-11-14T12:01:19.497 回答