Skip to main content
 首页 » 编程设计

Python正则表达式排除以字符串结尾

2025年05月04日35mfrbuaa

我有一个包含行的文件

From david.horwitz@uct.ac.za Fri Jan  4 06:08:27 2008 
Received: (from apache@localhost) 
Return-Path: <postmaster@collab.sakaiproject.org> 
for <source@collab.sakaiproject.org>; 

我试图阅读每一行并使用正则表达式来查找域名,基本上是符号@ 之后的部分。这是我写的代码

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

但它返回以下结果

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

有什么聪明的方法可以只保留域而不包含')'、'>'或'>;'后面跟着域名?

请您参考如下方法:

稍作更正 - FQDN 也可以包含数字...

所以正则表达式需要稍微调整一下

[@][a-zA-Z0-9.-]+

完整域规则位于 https://en.wikipedia.org/wiki/Uniform_Resource_Locator