Python SyntaxError: неверный синтаксис при реализации bbcodepy

У меня есть bbcodepy, и мне разрешено его изменять, но я не могу импортировать его в свой основной .py. Я продолжаю получать SyntaxError, и я действительно не знаю, что не так с кодом, потому что я его не писал. Я просто хочу немного повозиться и посмотреть, смогу ли я заставить его удовлетворить мои потребности. Вот изображение, указывающее мне на синтаксическую ошибку. Но я заметил, что один и тот же код написан в одной строке, и я не получаю для этого SyntaxError. Вот код:

_URL_RE = re.compile(ur'''\b((?:([\w-]+):(/{1,3})|www[.])(?:(?:(?:[^\s&()]|&amp;|&quot;)*(?:[^!"#$%&'()*+,.:;<=>?@\[\]^`{|}~\s]))|(?:\((?:[^\s&()]|&amp;|&quot;)*\)))+)''')

Проблема выглядит [^\s&()], но только во второй, а не в первой. Если вы внимательно посмотрите на код, вы увидите, что одно и то же появляется дважды, но я получаю SyntaxError только при втором появлении. Кто-нибудь, просветите меня, пожалуйста. Я уже несколько дней пытаюсь найти достойный парсер BBCode для Python, и я считаю, что это тот, который я могу изменить в соответствии со своими потребностями. Кажется, я не могу заставить bbcode работать так, как мне нужно, поэтому я пробую это вне.


person Domnius Carswell    schedule 07.02.2021    source источник


Ответы (1)


Что ж, Python версии 3.4 и выше не поддерживает префикс «UR».

Вам нужно выполнить свой код с помощью Python 2.7 или изменить строку на:

_URL_RE = re.compile(r'''\b((?:([\w-]+):(/{1,3})|www[.])(?:(?:(?:[^\s&()]|&amp;|&quot;)*(?:[^!"#$%&'()*+,.:;<=>?@\[\]^`{|}~\s]))|(?:\((?:[^\s&()]|&amp;|&quot;)*\)))+)''')

См. также: python версии 3.4 не поддерживает префикс ur

Примечание: избегайте строк в тройных кавычках, потому что если вы вставите новую строку, это может изменить значение регулярного выражения (если только оно не скомпилировано в режиме VERBOSE).

person Laurent LAPORTE    schedule 07.02.2021
comment
@DomniusCarswell, добро пожаловать. Вы можете проголосовать/принять этот ответ: stackoverflow.com/help/someone-answers - person Laurent LAPORTE; 07.02.2021
comment
Есть 5-минутное ожидание, пока я не приму ответ, я обязательно это сделаю. Не волнуйся - person Domnius Carswell; 07.02.2021