在Python 正規表示式中匹配和捕獲重複子模式
在匹配電子郵件地址等複雜模式時,通常需要捕獲重複子模式。例如,在像「yasar@webmail.something.edu.tr」這樣的電子郵件地址中,我們需要捕獲網域部分「.something」和「.edu」。正規表示式提供了一種透過重複捕獲組來實現此目的的方法。但是,Python re 模組並不完全支援它。
選項1:使用Python 的re 模組
如果您嘗試使用(.w ) 等模式re,它將只捕獲最後一個匹配組,而不是所有匹配項。例如,使用 [email protected],它只會捕獲“.tr”而錯過“.something”和“.edu”。
選項2:稍後拆分和匹配
正如所提供的答案所建議的,Python 中更直接的方法是首先匹配所有內容,然後使用字串操作分割捕獲的子模式。這可以更容易閱讀和實施。例如:
import re # Match the entire email address email_pattern = re.compile(r'([^\s@]+)@(\w+\.\w+)') match = email_pattern.match('[email protected]') if match: # Split the domain portion domain = match.group(2) domain_parts = domain.split('.') print('Domain Parts:', domain_parts)
此程式碼擷取整個電子郵件地址,然後將網域拆分為多個部分,使我們能夠單獨存取和儲存每個子模式。
以上是如何在 Python 正規表示式中捕捉重複子模式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!