首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python域名列表正则表达式

Python域名列表正则表达式
EN

Stack Overflow用户
提问于 2016-02-07 05:19:08
回答 2查看 1.1K关注 0票数 0

我希望使用python获得给定字符串中的所有域名。我已经尝试了下面的方法,但我没有得到预期的o/p

代码语言:javascript
复制
str = "ctcO6OgnWRAxLtu+akRCFwM asu.edu zOiV6Wo6nDnUhQkZO4XTySrTRwLMgozM9R/LyQs2r+Pb tarantino.cs.ucsb.edu,128.111.48.123 ssh-rsa 9SMF4U+qJW03Bh1"
list = re.findall(r'([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\.)+[a-z]{2,10}', str)
print list

我希望输出为:

代码语言:javascript
复制
asu.edu , tarantino.cs.ucsb.edu  

但我得到的是:

代码语言:javascript
复制
[('asu.', ''), ('ucsb.', '')]

我错过了什么?

EN

回答 2

Stack Overflow用户

发布于 2016-02-07 05:29:46

这应该是可行的:

代码语言:javascript
复制
import re
my_str = "ctcO6OgnWRAxLtu+akRCFwM asu.edu zOiV6Wo6nDnUhQkZO4XTySrTRwLMgozM9R/LyQs2r+Pb tarantino.cs.ucsb.edu,128.111.48.123 ssh-rsa 9SMF4U+qJW03Bh1"
my_list = re.findall(r'(([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\.)+[a-z]{2,10})', my_str)
print [i[0] for i in my_list]

正如加文指出的那样,您不应该使用strlist作为变量名,因为它们是Python语言中的内置类型。

票数 1
EN

Stack Overflow用户

发布于 2016-02-07 05:31:26

代码语言:javascript
复制
In [63]: text = "ctcO6OgnWRAxLtu+akRCFwM asu.edu zOiV6Wo6nDnUhQkZO4XTySrTRwLMgozM9R/LyQs2r+Pb tarantino.cs.ucsb.edu,128.111.48.123 ssh-rsa 9SMF4U+qJW03Bh1"

In [64]: re.findall(r'(?:[a-zA-Z0-9]+\.)+[a-z]{2,10}', text)
Out[64]: ['asu.edu', 'tarantino.cs.ucsb.edu']

  • 使用(?:...)创建非捕获组。当模式包含多个分组模式(即用括号括起来的模式)时,re.findall将为每个匹配返回一个元组。要防止re.findall返回元组列表,请使用非捕获组。
  • 对于您发布的text,模式(-[a-zA-Z0-9]+)*\.是不必要的。text中没有文字-,因此(-[a-zA-Z0-9]+)* 永远不会匹配text中的任何。当然,如果愿意,您可以将(?:-[a-zA-Z0-9]+)*添加到模式中(请注意非捕获组(?:...)的使用),但是您发布的text不会执行该模式的这一部分。然而,它将允许您将名称与假设进行匹配:

在73中: re.findall(r'(?:a-zA-Z0-9+(?:-a-zA-Z0-9+)*.)+a-z{2,10}','asu-psu.edu,但不像-psu-asu.edu') Out73:'asu-psu.edu','psu-asu.edu‘

Aprillion noted一样:

在74: re.findall(r'(?:a-zA-Z0-9+(?:-a-zA-Z0-9+)*.)+a-z{2,10}',text) 'tarantino.cs.ucsb.edu'

  • See:'asu.edu‘中,(?:[a-zA-Z0-9]+\.)+[a-z]{2,10}

模式的解释请参见Out74 regex101

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35246583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档