首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中使用split从字符串中提取子域

问在python中使用split从字符串中提取子域
EN

Stack Overflow用户
提问于 2020-04-27 06:05:15
回答 3查看 78关注 0票数 0

我有一个python函数,它输出/打印以下内容:

代码语言:javascript
复制
['CN=*.something1.net', 'CN=*.something2.net', 'CN=*.something4.net', 'CN=something6.net', 'CN=something8.net', 'CN=intranet.something89.net', 'CN=intranet.something111.net, 'OU=PositiveSSL Multi-Domain, CN=something99.net', 'OU=Domain Control Validated, CN=intranet.something66.net',...etc] 

我正在尝试使用Python中的split()方法提取"CN=“和单引号之间的所有子域名。我试过split('CN=', 1)[0],但我想不通如何使用它

我想要打印的内容:

代码语言:javascript
复制
['something1.net', 'something2.net', 'something4.net', 'intranet.something111.net', 'intranet.something66.net']

任何帮助都将不胜感激:-)

谢谢,MJ

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-27 06:10:11

最后一个单引号表示字符串的末尾,所以看起来您只是想要CN=之后的所有内容。假设是这样的话,你可以去掉前三个字符:

代码语言:javascript
复制
subdomains = [item[3:] for item in my_list if item.startswith('CN=')]
票数 1
EN

Stack Overflow用户

发布于 2020-04-27 06:48:21

这是一个可读性更好的代码,它以更干净或更好的方式提取子域;@tzaman代码并没有真正给我提供子域。

代码语言:javascript
复制
myDirtyDomains = ['CN=*.something1.net', 'CN=*.something2.net', 'CN=*.something4.net',\
'CN=something6.net', 'CN=something8.net', 'CN=intranet.something89.net',\
 'CN=intranet.something111.net', 'OU=PositiveSSL Multi-Domain', \
 'CN=something99.net', 'OU=Domain Control Validated', 'CN=intranet.something66.net']

cleanSubDomainsList = []

for item in myDirtyDomains:
    countDots = item.count(".")
    if countDots == 2:
        host = item.partition('CN=')[2]
        subdomain = host.partition('.')[0]
        cleanSubDomainsList.append(subdomain)

print(cleanSubDomainsList)
票数 0
EN

Stack Overflow用户

发布于 2020-04-27 10:12:25

如果只想从每个字符串中剥离CN=,可以使用str.lstrip()从左侧剥离

代码语言:javascript
复制
subdomains = [item.lstrip("CN=") for item in my_list]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61448722

复制
相关文章

相似问题

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