gpt4 book ai didi

Python正则表达式非贪婪表现得像贪婪

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:10 24 4
gpt4 key购买 nike

我正在处理成绩单,但在以非贪婪方式匹配模式时遇到了问题。它仍然抓得太多,看起来像是在进行贪婪的比赛。

成绩单如下所示:

>> John Doe:大家好,我是 John Doe。

>> 大家好,我是李四。

>> 感谢您的光临,我们将在两分钟后开始。

>> Sam Smith:[无音频]大家早上好。

为了在>>(任何名字)中找到演讲者的名字:,我写了

pattern=re.compile(r'>>(.*?):')
transcript='>> John doe: Hello, I am John Doe. >> Hello, I am Jane Doe. >> Thank you for coming, we will start in two minutes. >> Sam Smith: [no audio] Good morning, everyone.'
re.findall(pattern, transcript)

我期望 'John Doe''Sam Smith',但它给了我 'John Doe''大家好,我是简·杜。 >> 感谢您的光临,我们将在两分钟后开始。 >> 山姆·史密斯的

我很困惑,因为 .*? 是非贪婪的,(我认为)应该能够获取 'Sam Smith'。我应该如何修复代码,以便它只抓取任何内容>>(随便什么名字):?另外,我使用的是 Python 3.6。

谢谢!

最佳答案

你真的需要正则表达式吗?您可以拆分 >>> 提示,然后过滤掉您的名字。

>>> [i.split(':')[0].strip() for i in transcript.split('>>') if ':' in i]
['John doe', 'Sam Smith']

关于Python正则表达式非贪婪表现得像贪婪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126788/

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