300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python正则判断列表是否有元素 python – 从列表中删除正则表达式元素

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

时间:2018-10-09 00:36:57

相关推荐

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

我使用python 2.7.

我在文件’a’中有数据:

myname1@;description1

myname2@;description2

myname3@this_is_ok.ok;description3

myname5@qwe.in;description4

myname4@;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/0902/1787577.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。