Python 3.x 在python中使用split从字符串中提取子域
我有一个python函数,可以输出/打印以下内容:Python 3.x 在python中使用split从字符串中提取子域,python-3.x,list,split,Python 3.x,List,Split,我有一个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',
['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最后一个引号表示字符串的结尾,因此您似乎只需要
CN=
之后的所有内容。假设是这样,你可以删掉前三个字符:
subdomains = [item[3:] for item in my_list if item.startswith('CN=')]
这是一个可读性更强的代码,它以更干净或更好的方式提取子域; @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)
如果您只想从每个字符串中删除
CN=
,可以从左侧删除,方法是:
subdomains = [item.lstrip("CN=") for item in my_list]