ホームページ > バックエンド開発 > Python チュートリアル > Python Regex は繰り返されるサブパターンを効果的にキャプチャできますか?

Python Regex は繰り返されるサブパターンを効果的にキャプチャできますか?

DDD
リリース: 2024-11-24 10:46:11
オリジナル
632 人が閲覧しました

Can Python Regex Capture Repeated Subpatterns Effectively?

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

複雑なパターンと一致する場合、繰り返しサブパターンをキャプチャすると正規表現のパフォーマンスが向上します。 Python の正規表現にはキャプチャの繰り返しには制限がありますが、目的のパターンを効果的にキャプチャするための回避策があります。

分割と連結

提供された回答で提案されている 1 つのアプローチは次のとおりです。最初にパターン全体を照合し、後でサブパターンを分割します。このアプローチでは正規表現が簡素化されますが、分割には追加の手順が必要です。たとえば、電子メール アドレスの一致を検討してください。

import re

pattern = r'(.+?)@(\w+\.\w+)'
text = "yasar@webmail.something.edu.tr"

match = re.match(pattern, text)
if match:
    email_address, domain = match.groups()
    subdomains = domain.split(".")
ログイン後にコピー

正規表現グループ

パターンがより複雑で、サブパターンに明確な特徴がある場合は、正規表現グループ (括弧など) ) を使用して直接キャプチャできます。次のパターンを考えてみましょう:

pattern = r'(\w+)?\((\d+) entries?\)'
ログイン後にコピー

このパターンは、単語と、数値とテキスト「entries」(または「entry」) を含むオプションのかっこ内の式に一致します。キャプチャされたグループには、match オブジェクトを通じてアクセスできます:

text = "Received 10 entries for yesterday"

match = re.match(pattern, text)
if match:
    word, count = match.groups()
    if word:
        print("Word:", word)
    if count:
        print("Count:", count)
ログイン後にコピー

このアプローチにより、複雑な分割ルーチンを必要とせずにサブパターンを直接キャプチャできます。

以上がPython Regex は繰り返されるサブパターンを効果的にキャプチャできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート