python
  • regex
  • error-handling
  • try-except
  • 2010-10-11 109 views -3 likes 
    -3
    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代碼。在某些情況下,我需要使用「或」或「」「來包裝正則表達式。我想嘗試/除了錯誤。如果錯誤被捕獲,那麼我可以嘗試另一個。但它沒有奏效。任何幫助?如何捕捉python語法錯誤?

    +1

    ...... W時的T? – 2010-10-11 07:02:01

    +1

    請。查找教程。做所有的教程。這個問題表明你跳過了一些部分。 – 2010-10-11 11:16:16

    +0

    去學習更多。 – 2012-07-12 20:37:30

    回答

    0

    Python中的try/except語句用於在程序運行時發生的錯誤。另一方面,您遇到編譯期間發生的錯誤。在這種情況下,try/except不會幫助你。

    看起來您總是最好使用"""來圍繞包含不同類型引號的正則表達式。在Python中,唯一不能放在三引號字符串中的是三引號。

    +0

    對於一個實例:a =「」「aaa」「」「,它不會起作用,那裏有一些方法來動態編譯代碼並嘗試捕獲錯誤並嘗試另一個? – mlzboy 2010-10-11 07:09:38

    +0

    @mlzboy:如果您正在生成這個代碼從其他的東西,然後可能會逃脫你所有的嵌入式引號。所以'a =「aaa \」「'會是'aaa'後面跟着'''。 – 2010-10-11 08:03:39

    +0

    我已經按照我的方式處理它,它會導致錯誤使用「」「和字符串endswith」,所以在字符串結束我添加一個空格,所以它不會拋出syntx錯誤,之後,我做了一些逃脫,如你所說,上面,謝謝 – mlzboy 2010-10-11 10:55:41

    0

    您需要在RE中轉義您的引號。在您的第一行中,所有單引號需要轉義爲\'

    不要使用try塊來修復錯誤的RE。第一次就做對了。

    相關問題