Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式将段落拆分为javascript中的句子_Javascript_Regex - Fatal编程技术网

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

使用正则表达式将段落拆分为javascript中的句子,javascript,regex,Javascript,Regex,我试图用正则表达式从段落中提取句子。请注意,我正试图使用java脚本实现这一点。我用其他语言尝试了一些方法,结果出现了语法错误。我希望不要考虑像先生、夫人等的头衔。作为句子的结尾。还要对诸如“Michel G”之类的字符串敏感,不要将其解释为句子的结尾。请在下面找到我的正则表达式。我尝试了很多方法,但还是没能奏效。任何帮助都将不胜感激 var sentences = $(this).text() .replace(/(((?![.!?]['".”]?\s).)*[.!?]['".”]?)(\s|

我试图用正则表达式从段落中提取句子。请注意,我正试图使用java脚本实现这一点。我用其他语言尝试了一些方法,结果出现了语法错误。我希望不要考虑像先生、夫人等的头衔。作为句子的结尾。还要对诸如“Michel G”之类的字符串敏感,不要将其解释为句子的结尾。请在下面找到我的正则表达式。我尝试了很多方法,但还是没能奏效。任何帮助都将不胜感激

var sentences = $(this).text()
.replace(/(((?![.!?]['".”]?\s).)*[.!?]['".”]?)(\s|$)/g,
'<span class="sentence"> $1 </span> $3<div class="commentform">' + formdialog + '</div>');
var句子=$(this).text()
.替换(/(((?![.!?]['”?\s)。*[.!?]['”?)(\s |$)/g,
“$1$3”+formdialog+”;
拟摘录的段落

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

迈克尔·戈登(Michael R.Gordon)在沙特阿拉伯利雅得撰稿报道

啊,是的。是的,但你面临的问题是当一个点没有结束一个句子时,就像《代码》中的克里先生和《代码》中的迈克尔·R·戈登一样。恐怕没有简单的解决办法

根据你对所摘录段落的了解程度,你可以尝试在单个字母后加一个点和常见缩写后加一个点来禁止匹配,但之后你仍然会在“克里先生与总统谈话”和“你认为你要去哪里,先生”上出错。
因此,您必须确定误报(实际上是一句话时一分为二)和漏报(本应如此时不分开)的严重程度,并相应地调整解决方案

请注意,这是一个难题。
通常,像OpenOffice和word这样的文字处理器会尝试检测句子何时结束,从而自动将下面的字母转换为大写。大多数智能手机键盘也尝试这样做。我从未遇到过这样完美的人;我给他们举的例子让他们大吃一惊