gpt4 book ai didi

python - 如何匹配从一个词到句末?

转载 作者:太空宇宙 更新时间:2023-11-04 04:13:34 25 4
gpt4 key购买 nike

我想用 python 正则表达式 python 在单词“is”之后获取整个句子。

我的代码:

s = '''Robert is an English actor, model and musician.
He started his film career by playing Cedric Diggory in Harry Potter.'''
r = re.findall(r'(?:is) (.*)',s)
print(r)

我希望输出是:

'an English actor, model and musician'

但实际输出是:

['an English actor, model and musician','film career by playing Cedric Diggory in Harry Potter']

最佳答案

因为您只希望从 is 到句子结尾,this RegEx将工作:

\bis\s+(.+?)\.

需要与标志 s 一起使用,以便 . 也匹配换行符,以防句子分布在多行中。我将 + 量词与 . 一起使用,因为 .* 会使整个正则表达式匹配,即使 is.,一句什么都说不通。

enter image description here

. 通过将其移出捕获括号从输出中删除。 “句子的其余部分”在第一个捕获组中。

请注意,如果句子中有像 Mrs. 这样的简单方法(并且有很多短语包含 .这可能属于一个句子)。

解析自然语言非常困难。如果你有任何比简单、定义明确和可预测的文本更复杂的东西,那么你应该寻求一个专门的图书馆。例如,快速搜索会显示综合库 NLTKspaCy .


This helpful regex tool提供它如何匹配的解释。您尝试的变体

(\bis\b)([\s\S]*)

enter image description here

有关详细信息,请参阅链接页面。评论

  • 它创建两个捕获组,其中您的目标输出是第二组,您可以使用 $2 调用它。

  • 第一组在你唯一的 is 实例周围创建一个单词边界。

  • 您可以使用 \ 转义任何语言特定的元字符。

关于python - 如何匹配从一个词到句末?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55896959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com