簡體   English   中英

Python:如何在固定字符串中的特定字符之前排除一組字符

[英]Python: How to exclude a group of characters before a specific character in a fixed string

我想使用python腳本從用戶列表中排除“ @”之前和之后的所有字符。 我只想查看完整的域名。 我嘗試使用正則表達式,替換,子字符串,自定義函數等實現此目的,但是沒有任何東西可以生成我需要的輸出。 我覺得我朝着錯誤的方向前進,我肯定想念一些簡單的事情。

*用戶列表

user@domain.com
anotheruser@somedomain.org
superuser@domains.co.uk
foo@domain.com
email = 'user@domain.com'
_, domain = email.split('@')
print domain

>>> domain.com

為了完整起見,這是(a)使用正則表達式的解決方案:

>>> import re    
>>> re.search(r'(?<=@).*', 'me@example.com').group()
'example.com'

作為split()的替代方法,您可以按以下方式切片索引

email = 'user@domain.com'
domain = email[email.index['@']+1:]
print domain

>>> domain.com

這是@chishaku的答案的安全性更高的版本; 它會在目標字符或子字符串的第一次出現之后返回所有內容,並且不會因0次或多次出現而阻塞。

def after_first(ch, s):
    return s.split(ch, 1)[-1]

for user in userlist:
    print after_first("@", user)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM