我设法让我的脚本根据行中的内容打印出一行文本:

if "cvename" in line:
    CVE = list_of_line[4:5]
    print "The CVE number is ", ' '.join(CVE)
    print " "
    CVEfile.write("CVE-" + str(CVE) + '\n')

打印出来的是:
['http://cve.mitre.org/cgi-bin/cvename.cgi?name=1999-0016][Xref']

但我想要的只是1999-0016的价值
我假设可以使用正则表达式来实现这一点,但我在使用它们方面没有太多经验我注意到我要提取的值总是从一年开始,因为它是一个CVE数

最佳答案

在使用正则表达式之前,请始终尝试使用更具体的方法。你需要解析一个url吗?使用urlparse

import urlparse

u = 'http://cve.mitre.org/cgi-bin/cvename.cgi?name=1999-0016'

q = urlparse.urlparse(u).query
values = urlparse.parse_qs(q).get('name')
if values is not None:
    print values[0]
    # prints '1999-0016'

09-04 19:28