栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一个正则表达式,用于从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”。 (您可以调整单字母的大小写,但是除非对它进行硬编码,否则无法检测到缩写。)

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

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669410.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号