Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在python中使用split从字符串中提取子域_Python 3.x_List_Split - Fatal编程技术网

Python 3.x 在python中使用split从字符串中提取子域

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',

我有一个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

最后一个引号表示字符串的结尾,因此您似乎只需要
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]