我设法让我的脚本根据行中的内容打印出一行文本:
if "cvename" in line:
CVE = list_of_line[4:5]
print "The CVE number is ", ' '.join(CVE)
print " "
CVEfile.write("CVE-" + str(CVE) + '\n')
打印出来的是:
^{pr2}$
但我想要的是'1999-0016'的值
我假设可以使用正则表达式来实现这一点,但我在使用它们方面没有太多经验。我注意到,我想要提取的值总是以一年开始,因为它是一个CVE数字
Tags:
在使用正则表达式之前,请始终尝试使用更具体的方法。你需要解析一个网址?使用
urlparse
。在在这种情况下,可以使用正则表达式,是的:
将匹配以
^{pr2}$name=
开头的任何文本,后跟两个4位数字。分组允许您提取该数字:我确实注意到,通常CVE编号的前缀是文本
CVE-
;匹配这两种形式的正则表达式是:使用正则表达式将允许您从全文中选择这样的url。另一方面,如果您使用的是一个合适的HTML解析器,我建议您改为解析组成部分的url。在
您需要进一步修正解析算法,但要获得值部分:
一旦您修复了这个位
CVE = list_of_line[4:5]
,上面的内容将给您预期的结果。在相关问题 更多 >
编程相关推荐