当前位置: 首页 > 面试题库 >

Python-正则表达式,用于将文本拆分为句子(句子加标记)

弘和同
2023-03-14
问题内容

我想从字符串中列出句子列表,然后将其打印出来。我不想使用NLTK来做到这一点。因此,它需要在句子末尾的句点上进行分隔,而不是小数点,缩写或名称的标题,或者句子中包含.com。这是对正则表达式的尝试,不起作用。

import re

text = """\
Mr. Smith bought cheapsite.com for 1.5 million dollars, i.e. he paid a lot for it. Did he mind? Adam Jones Jr. thinks he didn't. In any case, this isn't true... Well, with a probability of .9 it isn't.
"""
sentences = re.split(r' *[\.\?!][\'"\)\]]* *', text)

for stuff in sentences:
        print(stuff)

示例输出应如下所示

Mr. Smith bought cheapsite.com for 1.5 million dollars, i.e. he paid a lot for it. 
Did he mind?
Adam Jones Jr. thinks he didn't.
In any case, this isn't true...
Well, with a probability of .9 it isn't.

问题答案:

(?<!\w.\w.)(?<![A-Z][a-z].)(?<=.|\?)\s

尝试这个。分割您的字符串。您还可以查看演示。

http://regex101.com/r/nG1gU7/27



 类似资料:
  • 问题内容: 如何匹配“ Hello world”或“ Hello World”形式的句子。该句子可能包含“-/数字0-9”。任何信息对我都会非常有帮助。谢谢。 问题答案: 这将做得很好。我对句子的定义:句子以非空格开头,以句点,感叹号或问号(或字符串结尾)结尾。标点符号后可能会有一个结束语。 这是输出: 正确地匹配所有这些(最后一个句子没有结尾标点符号),看起来似乎并不那么容易!

  • 问题内容: 我如何使它对任何数字格式和任何数字都有效 目前仅对1-999-999-9999有效 问题答案: 采用: 参考: 模式匹配

  • 我正在寻找一个C#regex来匹配一个句子中的完整单词。 我的句子和句型如下所示。 我没有得到任何匹配使用上述模式。 但如果我用这个模式,我会得到一个匹配。 但问题是它匹配连字符分隔的单词,如在疼痛,我正在寻找一个完整的单词。 谢谢你的帮助

  • 我想用句子截断文本。 示例文本:'Lorem ipsum dolor坐在amet,奉献adipiscing elit!UT车辆laoreet urna, commodo,在马萨诸塞州。赛德volutpat nunc简历urna拍卖,在tempus enim rhoncus。马蒂斯康莫多的莫尔比交流电击器?Morbi在ornare Arcu,sagittis scelerisque risus。Ae

  • 问题内容: 我已经编写了这段代码,用于拆分字符串并将其存储在字符串数组中:- 但是,我添加了[az],因为我想处理一些缩写问题。但是随后我的结果显示为: 此外,当埃弗里特(Everett)试图指导他们进行基础数学训练时,他们被证明是毫无反应的 我看到丢失了split函数中指定的模式。对我来说,可以省略句号,但是丢失单词的最后一个字母会打乱其含义。 有人可以帮助我吗?此外,有人可以帮助我解决缩写吗?

  • 问题内容: 我正在尝试编写一个正则表达式模式,该模式将匹配以多个或一个制表符和/或空格开头的任何句子。例如,我希望我的正则表达式模式能够匹配“你好,我喜欢正则表达式!” 但是我想弄清楚如何在“ hello”之后匹配单词。到目前为止,我有这个: 任何帮助,将不胜感激。谢谢。 问题答案: 手段“开头” 装置空白 的装置1种或多个 装置的任何字母,,,,,或空白字符 的意思是“与端”