2016-01-06 15 views
1

末我有一個像Python正則表達式來排除用繩子

From [email protected] Fri Jan 4 06:08:27 2008 
Received: (from [email protected]) 
Return-Path: <[email protected]> 
for <[email protected]>; 

我試圖讀取每一行,並使用正則表達式查找域名,基本符號之後的部分用行的文件@ 。這是我寫的

if re.search('[@]\S+?', line) : org = re.findall('@(\S+)',line)[0] 

的代碼,但它會返回以下結果

uct.ac.za 
localhost) 
collab.sakaiproject.org> 
collab.sakaiproject.org>; 

有沒有什麼聰明的辦法只能保持域,不包括「)」,「>」或' >;」其次是域名?

回答

2

試試這個

爲做到這一點使用正則表達式的否定,[^\>\)\s]+

if re.search('@([^\>\)\s]+)', line) : org = re.findall('@([^\>\)\s]+)',line)[0] 

輸出

uct.ac.za 
localhost 
collab.sakaiproject.org 
collab.sakaiproject.org