gpt4 book ai didi

Python正则表达式在同一行中查找短语

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

我有这样的成绩单:

speaker1 (caller): hello.
speaker2 (agent): thank you for calling.
speaker1 (caller): I need some help with my account 3429.
speaker2 (agent): Sure let me help.

它们的形式为“speakerN(调用者或代理)”。我需要编写一个正则表达式来获取调用者和代理对话的列表。所以对于上面的例子,我会输出:

['(caller): hello. ', '(agent): thank you for calling', '(caller): I need some help with my account 3429.', '(agent): Sure let me help.']

这是我到目前为止所拥有的:

aList = re.findall('speaker. (.*) speaker.|$', transcript)
print(aList)

我知道前面有一个扬声器N,我需要捕获一些文本,然后在末尾有另一个扬声器N(表示新列表)或行尾。这是我试图捕获的逻辑,但它将整个转录本放入第一个列表元素中,并将空字符串放入第二个列表元素中。任何帮助将不胜感激。

最佳答案

正则表达式仅产生非重叠匹配。因此,speaker 不能在您的模式中出现两次。您需要将其放入前瞻中:

speaker\d+ (\([^(]*?)(?=\s+speaker\d+|$)

这将捕获组 1 中的文本。

Demo.

关于Python正则表达式在同一行中查找短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39105698/

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