如何在 Python 正規表示式中捕捉重複子模式?

Susan Sarandon
發布: 2024-11-24 12:43:11
原創
139 人瀏覽過

How Can You Capture Repeating Subpatterns in Python Regex?

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板