gpt4 book ai didi

python - 从列表中删除正则表达式元素

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:42 25 4
gpt4 key购买 nike

我使用 python 2.7。我在文件“a”中有数据:

myname1@abc.com;description1
myname2@abc.org;description2
myname3@this_is_ok.ok;description3
myname5@qwe.in;description4
myname4@qwe.org;description5
abc@ok.ok;description7

我读这个文件是这样的:

with open('a', 'r') as f:
data = [x.strip() for x in f.readlines()]

我有一个名为 bad 的列表:

bad = ['abc', 'qwe'] # could be more than 20 elements

现在我试图删除所有在@ 之后带有“abc”和“qwe”的行,并将其余部分写入新文件。所以在 newfile 中应该只有 2 行:

myname3@this_is_ok.ok;description3
abc@ok.ok;description7

我一直在尝试使用正则表达式 (.?)@(.?);(.*) 来获取组,但我不知道下一步该怎么做。

请多多指教!

最佳答案

这是一个非正则表达式的解决方案:

bad = set(['abc', 'qwe'])

with open('a', 'r') as f:
data = [line.strip() for line in f if line.split('@')[1].split('.')[0] in bad]

关于python - 从列表中删除正则表达式元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11339487/

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