一个正则表达式,用于从python的一个段落中提取句子

一个正则表达式,用于从python的一个段落中提取句子,第1张

一个正则表达式,用于从python的一个段落中提取句子

例如,您发布的段落的第一句用双引号

"
引起来,而引号紧接在句号之后: 感染。”

您的正则表达式

[.!?]s{1,2}
正在寻找一个句点,后跟一个或两个空格作为句子终止符,因此它不会被抓住。

可以通过允许使用可选的右引号进行调整以应对这种情况:

sentenceEnders = re.compile(r'''[.!?]['"]?s{1,2}(?=[A-Z])''')

但是,使用上述正则表达式,您将删除句子的结尾引号。保持它有些棘手,可以使用后向断言来实现:

sentenceEnders = re.compile(r'''(?<=[.!?]['"s])s*(?=[A-Z])''')

但是请注意,在许多情况下,基于正则表达式的拆分器会失败,例如:

  • 缩写: “在AB Givental博士的作品中……” -根据您的正则表达式,这将在 “ Dr.” 之后错误地拆分。 , “ A”。“ B”。 (您可以调整单字母的大小写,但是除非对它进行硬编码,否则无法检测到缩写。)

  • 在句子的中间使用感叹号: “……何时,瞧瞧!德夏先生亲自出现……”

  • 使用多个引号和嵌套引号等



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5674657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存