javascript - 使用正则表达式将段落拆分为javascript中的句子

标签 javascript regex

我正在尝试使用正则表达式从段落中提取句子。请注意我正在尝试使用 java 脚本来实现这一点。我尝试了一些用其他语言完成的方法,导致语法错误。我希望它不要考虑像 Mr., Mrs. 这样的头衔。等..作为句子的结尾。还要对“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 来自沙特阿拉伯利雅得,对报道有贡献。

最佳答案

啊,是的。你是not doing bad ,但是您面临的问题是点没有结束一个句子,例如 Mr. KerryMichael R. Gordon。恐怕没有简单的解决方案。

根据您对要提取的段落的了解,您可以尝试禁止在单个字母后跟一个点和常见缩写后跟一个点后进行匹配,但是你仍然会遇到 '先生。克里与总统交谈。以及“您打算去哪里,先生。”
因此,您必须确定误报(实际上是一个句子分成两部分)和假阴性(本应分开的时候没有分开)有多糟糕,并相应地调整您的解决方案。

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

关于javascript - 使用正则表达式将段落拆分为javascript中的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19976805/

相关文章:

javascript - 为什么 'stay on page'对话框暂停异步函数?

Javascript 正则表达式替换影响单个单词

java - 剥去前导和尾随竖线 |来自 Java 中的字符串

Java:替换第一个位置上除符号 "+"之外的所有非数字符号

javascript - 如何查看我的项目中ES6类的继承关系?

javascript - 如何制作仅捕获一个符号但有限制的正则表达式?

javascript - 从数据库插入下拉列表到wordpress页面($.post没有功能)

javascript - 在 Ace 编辑器中渲染 span 标签

python - 如何在正则表达式中匹配 [..] 内的 '-'

c# - 有效函数名称的正则表达式 ([a-zA-Z]\w+)[^\w]