Как отлавливать ошибки синтаксиса Python?
try:
pattern=r'<tr><td><a href='(?P<link>[\s\S]*?)'[\s\S]*?><img src='(?P<img>[\s\S]*?)' width='130' height='130'[\s\S]*?/></a></td>'
except:
try:
pattern=r"<tr><td><a href='(?P<link>[\s\S]*?)'[\s\S]*?><img src='(?P<img>[\s\S]*?)' width='130' height='130'[\s\S]*?/></a></td>"
except:
pattern=r"""<tr><td><a href='(?P<link>[\s\S]*?)'[\s\S]*?><img src='(?P<img>[\s\S]*?)' width='130' height='130'[\s\S]*?/></a></td>"""
Я пишу регулярные выражения с помощью инструмента, а затем генерирую код Python. В некоторых ситуациях мне нужно использовать 'или "или" "", чтобы обернуть регулярное выражение. Я хочу попробовать / кроме ошибки. Если ошибка фиксируется, то я могу попробовать другой. Но это не сработало. Любая помощь?
2 ответа
try
/except
Оператор в Python используется для ошибок, которые происходят во время работы вашей программы. С другой стороны, вы сталкиваетесь с ошибками, которые происходят во время компиляции. В этом случае, try
/except
не поможет тебе.
Похоже, вам лучше всего всегда использовать """
чтобы окружить ваши регулярные выражения, которые содержат различные виды цитат. В Python единственная вещь, которую вы не можете поместить в строку с тройными кавычками, это тройная кавычка.
Вы должны избежать ваших цитат внутри RE. В первой строке все одинарные кавычки должны быть экранированы как \'
,
Не используйте блок try для исправления вашего неисправного RE. Просто сделай это правильно с первого раза.