gpt4 book ai didi

python - 如何使用具有多种数据格式的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:02 24 4
gpt4 key购买 nike

我正在尝试从我监控的网站中提取引用 CVE。当第 0 行的格式是这样时,我的正则表达式代码可以正常工作——(引用编号#8957501)(CVE-2015-3600),但当格式更改为这个格式时它就崩溃了——(引用编号#555237/92073/CVE-2015 -9042)

如何使用两种格式提取 CVE 字符串?

这是我当前的正则表达式代码:

cve_pattern = re.compile(r'(CVE-1999-\d{4,7}|CVE-(200[0-9])-\d{4,7}|CVE-(201[0-9])-\d{4,7})', re.IGNORECASE)
for cve_number_pattern_match in cve_pattern.finditer(row[0]):
if cve_number_pattern_match is not None:
logger.info(cve_number_pattern_match.group(0) + " is located on row " + str(row_num))
cve_number_list[row_num] = cve_number_pattern_match.group(0)

最佳答案

你可以使用

r'\bCVE[\d-]+'

匹配单词边界、CVE 子字符串和 1+ 个数字或 -。查看regex demo .

或者,您可以使用更精确的

r'\bCVE-\d+(?:-\d+)?'

详细信息:

  • \b - 前导词边界
  • CVE- - CVE- 子串
  • \d+ - 一位或多位数字
  • (?:-\d+)? - 一个可选序列:
    • - - 连字符
    • \d+ - 1 个或多个数字。

参见 another demo .

关于python - 如何使用具有多种数据格式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41044357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com