Cómo detectar errores de sintaxis de Python?
-
29-09-2019 - |
Pregunta
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>"""
Estoy escribiendo expresiones regulares a través de una herramienta, y luego generar el código Python. Hay algunas situaciones en las que necesito para usar "o 'o ''' para envolver la expresión regular. Quiero probar / excepto el error. Si se captura el error, entonces puedo probar con otro. Pero no funcionó. Cualquier ayuda?
Solución
La declaración try
/ except
en Python se utiliza para los errores que se producen mientras el programa se está ejecutando. Por otro lado, se está encontrando errores que ocurren durante la compilación. En este caso, try
/ except
no le ayudará.
Parece que sería mejor fuera siempre utilizando """
para rodear sus expresiones regulares que contienen diferentes tipos de comillas. En Python, el único que no se puede poner dentro de una cadena triple citado es una triple cita.
Otros consejos
tiene que escapar de sus cotizaciones en el interior del RE. En su primera línea, todas las comillas simples necesitan ser escapado como \'
.
No utilice un bloque de intentar arreglar el RE defectuoso. Sólo hacer las cosas bien la primera vez.