我無法理解這些正則表達式如何工作以及何時使用它們。我還沒有在Python網站上找到這些正則表達式的具體例子。我知道SED AWK但沒有使用這些類型的正則表達式有無法理解python正則表達式?=
(?=...)
(?<=...)
(?(id/name)yes-pattern|no-pattern)
我無法理解這些正則表達式如何工作以及何時使用它們。我還沒有在Python網站上找到這些正則表達式的具體例子。我知道SED AWK但沒有使用這些類型的正則表達式有無法理解python正則表達式?=
(?=...)
(?<=...)
(?(id/name)yes-pattern|no-pattern)
(?=...)
是positive lookahead assertion。它匹配?=
在當前位置匹配後的圓括號中的部分,但不會消耗任何匹配字符。例如。正則表達式a(?=b)
將匹配a
後跟b
,但不會返回b
作爲匹配的一部分。
(?<=...)
是一樣的,但看一下&#x200a; 後面,即它看起來倒退。同樣,它不會消耗任何東西。
(?(id/name)yes-pattern|no-pattern)
是conditional。如果named groupid/name
匹配,則此時字符串必須匹配yes-pattern
,否則no-pattern
。
說實話,雖然這些都是相當先進的功能,我不記得曾經使用過一個條件。查找更常見,但通常受到正則表達式引擎的限制,例如,在許多情況下,只能用固定長度的字符串來完成後視。
感謝好友,我現在明白了 – user2027303
我連接了幾次的網站是學習正則表達式的非常好的資源。 – Joey
@Joey:'只能用固定長度的字符串來完成'你的意思是後視?預見性相當於從當前位置開始一個新的匹配,並在預見之內使用正則表達式,這很容易實現。 – nhahtdh
這些都是在're'文檔的[本節](http://docs.python.org/2/library/re.html#regular-expression-syntax)中解釋的。 – mgilson