如何捕获python语法错误?

时间:2010-10-11 06:58:48

标签: python regex error-handling try-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:
    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 个答案:

答案 0 :(得分:0)

您需要在RE内转义引号。在第一行中,所有单引号都需要转义为\'

请勿使用try块来修复有故障的RE。只是第一次做对。

答案 1 :(得分:0)

Python中的try / except语句用于在程序运行时发生的错误。另一方面,您遇到编译期间发生的错误。在这种情况下,try / except对您无济于事。

看起来你最好总是使用"""来包围包含不同类型引号的正则表达式。在Python中,唯一不能放在三引号字符串中的是三引号。