python正则判断列表是否有元素,python – 从列表中删除正则表达式元素

我使用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 = ['abc', 'qwe'] # could be more than 20 elements

现在我试图在@之后用’abc’和’qwe’删除所有行,并将其余部分写入新文件.

所以在newfile中应该只有2行:

myname3@this_is_ok.ok;description3

abc@ok.ok;description7

我一直在尝试使用regexp(.?)@(.?);(.*)来获取组,但我不知道接下来该做什么.

请告诉我!

解决方法:

import re

bad = ['abc', 'qwe']

with open('a') as f:

print [line.strip()

for line in f

if not re.search('|'.join(bad), line.partition('@')[2]]

只要坏只包含普通字符,该解决方案就可以工作.字母,数字,下划线,但没有任何干扰正则表达式,如’a | b’,正如@phihag所指出的那样.

标签:python,list,regex,parsing

来源: https://codeday.me/bug/20190902/1787577.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值