"""Extrae identificadores CVE de un texto, con offsets.""" import re _CVE_REGEX = re.compile( r"(? list[dict]: """Extrae IDs CVE con formato `CVE-YYYY-NNNN+`. Acepta el rango oficial (NVD): año de 4 digitos seguido de 4 a 7 digitos. No valida que el CVE exista en NVD. Insensible a posicion (puede aparecer al inicio, en medio o al final del texto). """ return [ { "value": m.group(0), "start": m.start(), "end": m.end(), "type": "cve_id", } for m in _CVE_REGEX.finditer(text) ]