删除字符串中的特定域地址

时间:2018-07-13 06:22:04

标签: python regex

str1 = "obul@ongoose.com|bharat@ongoose.com|rbasani@ongoose.com|srinu@gmail.com|"

现在我需要通过在python中使用正则表达式或在python中以任何其他方式删除所有str2 = srinu@gmail.com|来将上述字符串转换为ongoose.com|

2 个答案:

答案 0 :(得分:0)

您可以将str.split与否定索引一起使用。

例如:

str1 = "obul@ongoose.com|bharat@ongoose.com|rbasani@ongoose.com|srinu@gmail.com|"
print(str1.split("|")[-2])

输出:

srinu@gmail.com

或者如果字符串的位置是动态的。您可以使用str.endswith

str1 = "obul@ongoose.com|bharat@ongoose.com|rbasani@ongoose.com|srinu@gmail.com|"
for i in str1.split("|"):
    if not i.endswith("ongoose.com"):
        print(i)

答案 1 :(得分:0)

使用正则表达式

>>> import re
>>> str1 = "obul@ongoose.com|bharat@ongoose.com|rbasani@ongoose.com|srinu@gmail.com|"
>>> re.sub(r'(^|\|)[^@]*?@ongoose.com', '', str1).lstrip('!')
'srinu@gmail.com|'

没有正则表达式

>>> '|'.join([m for m in str1.split("|") if not m.endswith('@ongoose.com')])
'srinu@gmail.com|'