Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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正则表达式中提取字符串的子字符串_Python_Regex_Python 3.x_String - Fatal编程技术网

在python正则表达式中提取字符串的子字符串

在python正则表达式中提取字符串的子字符串,python,regex,python-3.x,string,Python,Regex,Python 3.x,String,我有一个结构化字符串流。我想用Python语言从每个部分中提取2个特定的部分 例如)我的字符串如下所示: cpe:2.3:a:troglobit:uftpd:*:*:*:*:*:*:*:*:*:* cpe:2.3:o:谷歌:安卓:8.0:*:* cpe:2.3:a:microsoft:asp.net_核心:2.1:*:* 我只需要粗体部分 请注意,*的数量在每种情况下都是不同的(介于6,7,8之间)。此外,字符串可以通过cpe:2.3:o:或cpe:2.3:a: 我尝试过不同的表达方式,例如:

我有一个结构化字符串流。我想用Python语言从每个部分中提取2个特定的部分

例如)我的字符串如下所示:

cpe:2.3:a:troglobituftpd:*:*:*:*:*:*:*:*:*:*

cpe:2.3:o:谷歌安卓:8.0:*:*

cpe:2.3:a:microsoftasp.net_核心:2.1:*:*

我只需要粗体部分

请注意,
*
的数量在每种情况下都是不同的(介于6,7,8之间)。此外,字符串可以通过
cpe:2.3:o:
cpe:2.3:a:

我尝试过不同的表达方式,例如:

例如,此示例适用于结尾只有6个
*
的情况

try:
                        temp = re.search("cpe:2.3:a:(.*):\*:\*:\*:\*:\*:\*",testString).group(1)
except AttributeError:
                        temp = 'NOT FOUND'

(不起作用)

(不起作用)


谢谢。

您无需使用
regex

sample = 'cpe:2.3:a:microsoft:asp.net_core:2.1:*:*:*:*:*:*'

' '.join(sample.split(':')[3:][:2])

'MicrosoftASP.net\uCore'

所有行都有cpe:2.3:a:或类似的内容吗?我的意思是一个3个字母的字符,然后是a:然后是一个数字,一个点,另一个数字,另一个:,另一个字符和另一个:?如果是,请选中@HamedGhasempour,这也适用。谢谢
 try:    
                        temp = re.search("(cpe:2.3:a:(.*):(.*))':{0}'$", testString).group(1)
 except AttributeError:
                        temp = 'NOT FOUND'
sample = 'cpe:2.3:a:microsoft:asp.net_core:2.1:*:*:*:*:*:*'

' '.join(sample.split(':')[3:][:2])