Python регулярное выражение SyntaxError: неожиданный символ после символа продолжения строки - PullRequest
0 голосов
/ 10 января 2020

Должно быть, я полностью испортил свое регулярное выражение. Я пытаюсь найти идентификатор и значение в следующей строке (и в конечном итоге нужно будет найти описание и его значение):

 "cve": {
        "CVE_data_meta": {
            "ASSIGNER": "cve@mitre.org",
            "ID": "CVE-2020-1785"
        },
        "data_format": "MITRE",
        "data_type": "CVE",
        "data_version": "4.0",
        "description": {
            "description_data": [
                {
                    "lang": "en",
                    "value": "Mate 10 Pro;Honor V10;Honor 10;Nova 4 smartphones have a denial of service vulnerability. The system does not properly check the status of certain module during certain operations, an attacker should trick the user into installing a malicious application, successful exploit could cause reboot of the smartphone."
                }
            ]
        },

Но по какой-то причине я получаю сообщение об ошибке выше.

Это мой код:

m= re.match("ID"\s*"([A-Za-z0-9-]*)"", str)
if m:
    print (m.groups())

Я тестировал в https://pythex.org/ и регулярное выражение

ID ":" ([A- Za-z0-9 -] *) "

сработало, но при запуске его в программе возникли проблемы с точкой с запятой, поэтому я попытался заменить ее на \ s *, но возникли проблемы с продолжением строки. Есть идеи? Прямо сейчас мне нужно просто захватить идентификатор, а затем мне понадобится описание.

Надеюсь, вы можете помочь! Я новичок в python и не часто делаю регулярные выражения.

1 Ответ

0 голосов
/ 10 января 2020

Вы закрыли строку после «ID», а обратный символ sh сразу после этого (вне строки) является символом продолжения строки. Ошибка в том, что после продолжения строки вам нужна новая строка, но, конечно, это совсем не то, что вы хотите.

Я думаю, что вы можете решить эту проблему, просто преобразовав свои внешние кавычки в одинарные кавычки, например 'ID"\s*"([A-Za-z0-9-]*)"'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...