我想知道我是否可以在提出正则表达方面得到一些帮助。我有一个文件,其中包含各种别名的长列表以及别名转发的电子邮件地址。该文件的格式如下:
别名:something@gmail.com
别名2:something2@gmail.com
别名3:something3@gmail.com
alias4:something4@gmail.com
alias5:something5@gmail.com
如何编写正则表达式来抓取冒号前面的部分(别名,alias2等)?对不起,如果这是一个非常简单的问题,我是Python的新手。提前谢谢!
答案 0 :(得分:1)
这是列表理解
first_parts = [
line.split(':')[0]
for line in file("addresses.txt").readlines()
if ':' in line
]
与此相似
first_parts = []
lines = file("addresses.txt").readlines()
for lines in lines:
if ":" in line:
first = line.split(":")[0]
first_parts.append(first)
答案 1 :(得分:1)
我建议您使用split()
来解决此问题,因为您有一个非常明显的分隔符。但是,这是一个使用正则表达式的解决方案:
lines = open(filename).readlines()
regex = re.compile("(.*):.*@gmail\.com")
aliases = [m.group(1) for m in map(lambda x: regex.match(x), lines) if m]