使用Python Regex 捕獲重複模式
在匹配電子郵件地址等複雜模式時,您可能會遇到需要捕獲多次出現的情況特定的子模式。在 Python 的正規表示式模組中,這可能會帶來挑戰。
考慮符合電子郵件地址(如「yasar@webmail.something.edu.tr」)的範例。匹配電子郵件的開頭部分後,您可能想要捕獲一次或多次出現的子模式“.(w )”。
在嘗試使用表達式「(.w ) 」時,您意識到它只捕獲最後一場比賽。這意味著您錯過了“.something”和“.edu”群組。
在 Python 的正規表示式模組中,不支援重複捕獲,即使它們符合正規表示式標準。因此,一次捕獲所有內容,然後再分割子模式是一種更有效的方法。
以下範例說明如何在使用簡單表達式捕獲電子郵件地址後分割子模式:
import re pattern = r'([.\w]+)@((\w+)(\.\w+)+)' match = re.match(pattern, 'yasar@webmail.something.edu.tr') # Split the subpatterns subpatterns = match.group(2).split('.') # Access the subpatterns print(subpatterns[0]) # 'webmail' print(subpatterns[1]) # 'something' print(subpatterns[2]) # 'edu'
此方法允許您單獨捕獲和訪問重複的子模式,提供簡單易讀的解決方案。
以上是如何在 Python 正規表示式中捕獲子模式的多次出現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!