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
Regex 用于查找CVE匹配项的正则表达式_Regex_Pattern Matching - Fatal编程技术网

Regex 用于查找CVE匹配项的正则表达式

Regex 用于查找CVE匹配项的正则表达式,regex,pattern-matching,Regex,Pattern Matching,我对正则表达式的概念还很陌生,所以我希望一位专家用户能帮助我设计出正确的表达式来查找字符串中的所有匹配项。我有一个字符串,其中表示许多漏洞数据的支持信息。该字符串中有一系列CVE参考,格式为:CVE-2015-4000。有人能给我提供一个样本正则表达式来查找所有出现的情况吗?显然,字符串的数字部分在整个字符串中都会发生变化…一般来说,您应该在问题中始终包含您以前的努力,您希望匹配的内容,等等。但是由于我知道格式,这是一个简单的问题 CVE-\d{4}-\d{4,7} 这首先匹配CVE-,然后匹

我对正则表达式的概念还很陌生,所以我希望一位专家用户能帮助我设计出正确的表达式来查找字符串中的所有匹配项。我有一个字符串,其中表示许多漏洞数据的支持信息。该字符串中有一系列CVE参考,格式为:CVE-2015-4000。有人能给我提供一个样本正则表达式来查找所有出现的情况吗?显然,字符串的数字部分在整个字符串中都会发生变化…

一般来说,您应该在问题中始终包含您以前的努力,您希望匹配的内容,等等。但是由于我知道格式,这是一个简单的问题

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


在行动中看到这一点。

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

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


请在操作中查看此项。

如果您需要没有任何语法或逻辑冲突的精确匹配,可以尝试以下操作:

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

您可以对MITRE提供的测试数据运行此测试,以测试代码或在线测试代码。

如果您需要没有任何语法或逻辑冲突的精确匹配,您可以尝试以下方法:

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

您可以对MITRE提供的测试数据运行此测试,以测试代码或在线测试代码。

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

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

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

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

非常感谢好先生!这是我的第一个问题,你用一个有效的例子来回答。我真的非常感激!非常感谢好先生!这是我的第一个问题,你用一个有效的例子来回答。我真的非常感激!这不适用于有效的CVE,如CVE-1999-0520、CVE-2000-0800、CVE-2002-0510、CVE-2004-0230。如果将其更改为:
^(CVE-(1999 | 2\d{3})-(0\d{2}[0-9]|[1-9]\d{3,}))$
它工作:)这对有效的CVE不起作用,例如CVE-1999-0520、CVE-2000-0800、CVE-2002-0510、CVE-2004-0230。如果将其更改为:
^(CVE-(1999{2\d{3})-(0\d{2}[0-9]|[1-9]\d{3}))$
它可以工作:)