使用正则表达式查找CVE匹配

时间:2015-06-02 17:42:31

标签: regex pattern-matching

我对正则表达式的概念很陌生,所以我希望专家用户可以帮我制作正确的表达式来查找字符串中的所有匹配项。我有一个字符串,它代表了漏洞数据的大量支持信息。在该字符串中是一系列CVE引用,格式为:CVE-2015-4000。任何人都可以提供一个示例正则表达式来查找所有出现的?显然,它的数字部分会在整个字符串中发生变化......

3 个答案:

答案 0 :(得分:5)

一般来说,你应该总是在你的问题中包括你以前的努力,你期望匹配的东西等等。但是因为我知道格式,这是一个简单的...

method

这首先匹配CVE-\d{4}-\d{4,7} ,然后是年份标识符的4位数字,然后是4到7位数字,以根据新标准识别漏洞。

在行动here中查看此内容。

答案 1 :(得分:3)

如果您需要完全匹配而没有任何语法或逻辑违规,您可以尝试:

^(CVE-(1999|2\d{3})-(0\d{2}[1-9]|[1-9]\d{3,}))$

您可以针对MITER here提供的测试数据运行此操作,以测试您的代码或在线测试here

答案 2 :(得分:0)

我将在已接受的答案中加上两美分。如果我们要检测不区分大小写的“ CVE”,可以遵循正则表达式

r'(?i)\bcve\-\d{4}-\d{4,7}'