我有一个包含以下字符串的文本文件:
test2@gmail.com:123456
test2@hotmail.com:124554134
test1@yahoo.com:fdsfsdfe
test5@gmail.com:9875464
现在我想通过python删除.com之前的所有字符串。
我的代码(但错误):
import re
myline = open("file.txt" ,"r").readlines()
for single_line in myline:
spline= single_line.rstrip()
result = re.sub("\.com$", "", spline)
print (result)
我该怎么办? 感谢
答案 0 :(得分:3)
为什么使用re
?简单地拆分字符串。
with open("file.txt" ,"r") as f:
for single_line in f:
print single_line.split(':')[1]
答案 1 :(得分:1)
根据your own answer使用.*\.com
正则表达式判断,您希望删除所有行内容,直到最后一次出现com:
。您可以使用str.rsplit
:
返回字符串中单词的列表,以分隔符字符串(从右开始)分隔。
请参阅Python demo:
ss = ['test2@gmail.com:123456',
'test2@hotmail.com:124554134',
'test1@yahoo.com:fdsfsdfe',
'test5@gmail.com:9875464',
'no com']
res = [s.rsplit("com:")[1] if "com:" in s else s for s in ss]
print(res)
# => ['123456', '124554134', 'fdsfsdfe', '9875464', 'no com']
因此,要么在最后一个com:
之后得到该部分,要么得到整个字符串。
答案 2 :(得分:0)
我找到了答案。 我用这个:
self.getUsers = function (callback) {
$.get("../API/Users/GetUsers/",callback);
}
答案 3 :(得分:0)
如果您只想选择:124554134
或:fdsfsdfe
您可以使用示例中显示的内容:https://regex101.com/r/i2iA7T/1/
:[\d\w]+
或者,如果您希望没有:
的行只使用反向查找:
(?<=:)[\d\w]+