我有两个问题:
编写一个程序,在文件中检索格式为(nnn)nnn-nnnn的所有电话号码。
制作程序以检索文件中以.com结尾的每个电子邮件地址
它们不同但基本上我们想要检查我们阅读的文件中的某些字符串。到目前为止,我只能读取文件并将每行放入一个数组中。我不知道如何忽视最后的\ n。
代码:
newfile = open('filepath')
numfile = newfile.readlines()
numbers = []
for line in num:
numbers.append(line)
newfile.close
print numbers
答案 0 :(得分:1)
可以使用re模块。
import re
pattern1 = '\(\d{3}\)\d{3}-\d{4}'
re.findall(pattern1, "My number is (234)456-3678 and your number is (567)789-4567.")
假设文件具有与findall的第二个参数中提到的内容相同的内容。 同样也为电子邮件创建模式。 喜欢
pattern2 = '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.com'
re.findall(pattern2, "My email is abc@hotmail.com and your email is abcdef_23@gmail.com")
答案 1 :(得分:0)
要忽略每行末尾的\ n,只需在你的行上使用.strip(“\ n”)。
for line in num:
numbers.append(line.strip("\n"))
.strip(phrase)将删除与括号中的短语匹配的字符串末尾的任何字符。
请问你能澄清问题的第一部分吗?如何构建文件 - 您是否会搜索文件以查找其中嵌入的数字,或者每行有一个数字?正如上面的用户所说,如果是后者,那么你可以使用正则表达式来搜索电话号码,否则,如果前者是真的,你就可以正确地遍历文件。