我有一个python函数,它输出/打印以下内容:
['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],但我想不通如何使用它
我想要打印的内容:
['something1.net', 'something2.net', 'something4.net', 'intranet.something111.net', 'intranet.something66.net']任何帮助都将不胜感激:-)
谢谢,MJ
发布于 2020-04-27 06:10:11
最后一个单引号表示字符串的末尾,所以看起来您只是想要CN=之后的所有内容。假设是这样的话,你可以去掉前三个字符:
subdomains = [item[3:] for item in my_list if item.startswith('CN=')]发布于 2020-04-27 06:48:21
这是一个可读性更好的代码,它以更干净或更好的方式提取子域;@tzaman代码并没有真正给我提供子域。
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)发布于 2020-04-27 10:12:25
如果只想从每个字符串中剥离CN=,可以使用str.lstrip()从左侧剥离
subdomains = [item.lstrip("CN=") for item in my_list]https://stackoverflow.com/questions/61448722
复制相似问题