我想编写代码,找到文件中以“From”开头的每一行,并提取位于空格和“@”符号之间的电子邮件地址部分。
text = open('mBox.txt')
for line in text:
if line.startswith('From') :
print line
这是我到目前为止所拥有的。不知道如何让它提取我想要的特定部分。这是for python 2.7
答案 0 :(得分:1)
使用正则表达式:
for line in text:
if line.startswith("From"):
match = re.search(r"(\S+)@", line)
if match:
print match.group(1)
\S
匹配任何不是空格的字符。由于\S+
会尽可能匹配,因此无需提及前面的空格。
答案 1 :(得分:0)
print line.split("From",1)[-1].split("@").strip()
应该做你想要的......至少是一种方式
您也可以使用正则表达式
matches = []
matcher=lambda m:matches.append(m.groups(1)) or ""
re.sub("^From\s+(\w+)@.*",text.read())
print matches
答案 2 :(得分:0)
你可以这样做
text = open('mBox.txt')
for line in text:
if line.split(' ', 1)[0] == 'From':
.....