gpt4 book ai didi

python - 带有 Lookbehind 的正则表达式拆分丢失了下半部分

转载 作者:行者123 更新时间:2023-12-03 21:43:46 25 4
gpt4 key购买 nike

我有一个包含多个关键字的字符串。我想将字符串拆分为这些关键字的列表(但保留关键字,因为它们确定了以下数据的含义)
以下面的字符串为例:

test_string = "ªttypmp3pfilfDjTunes/DJ Music/(I've Had) The Time Of My Life.mp3tsng<(I've Had) The Time Of My Lifetart:Bill Medley & Jennifer Warnes"
重要的关键字是“ttyp”、“pfil”、“tsng”、“tart”。我想拆分文件,以便输出看起来:
split_test_string = ["ª","ttypmp3","pfilfDjTunes/DJ Music/(I've Had) The Time Of My Life.mp3","tsng<(I've Had) The Time Of My Life","tart:Bill Medley & Jennifer Warnes"].
我一直在研究正则表达式,我认为这个表达式可以工作,但是在 Python 中测试时,我最终丢失了我想保留的部分。根据 Python re.split 文档,这应该可以工作。
查看我的正则表达式计算器: https://regex101.com/r/FOlgv8/1
注意:我正在尝试让第一部分工作。然后我将使用 | 添加其余的关键字。
regex = r'(?=ttyp).*'
这是我的示例代码:
import re
regex = r'(?=ttyp).*'

split_test_string = re.split(regex, test_string)
print(f"Results: {split_test_string}")
控制台输出:
Results: ['ª', '']
我尝试过积极的前瞻和积极的回顾,但没有运气。我可以只使用文字“ttyp”,但随后我丢失了关键字。
任何帮助将不胜感激,我一直在研究,试验和错误(主要是错误)几个小时。

最佳答案

给你:

re.split("(?=ttyp|pfil|tsng|tart)", test_string)
你的不工作的原因是你 split 了 .* ,这意味着您捕获分隔符之后的所有内容并将其视为分隔符本身(从而抛出它)。

关于python - 带有 Lookbehind 的正则表达式拆分丢失了下半部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65878477/

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