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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top