ホームページ >バックエンド開発 >Python チュートリアル >Python 正規表現で繰り返しサブパターンをキャプチャするにはどうすればよいですか?

Python 正規表現で繰り返しサブパターンをキャプチャするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-24 12:43:11169ブラウズ

How Can You Capture Repeating Subpatterns in Python Regex?

Python 正規表現での繰り返しのサブパターンのマッチングとキャプチャ

電子メール アドレスのような複雑なパターンをマッチングする場合、多くの場合、繰り返しのサブパターンをキャプチャする必要があります。たとえば、「yasar@webmail.something.edu.tr」のような電子メール アドレスでは、ドメイン部分「.something」と「.ed​​u」をキャプチャする必要があります。 Regex は、グループを繰り返しキャプチャすることでこれを行う方法を提供します。ただし、Python re モジュールは完全にはサポートしていません。

オプション 1: Python の re モジュールを使用する

(.w ) のようなパターンを使用しようとすると、この場合、すべての出現ではなく、最後に一致したグループのみがキャプチャされます。たとえば、[email protected] の場合、「.tr」のみがキャプチャされ、「.something」と「.ed​​u」は見逃されます。

オプション 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。