ホームページ > バックエンド開発 > Python チュートリアル > Python の正規表現は重複する一致をどのように見つけられるのでしょうか?

Python の正規表現は重複する一致をどのように見つけられるのでしょうか?

DDD
リリース: 2024-12-17 08:32:24
オリジナル
406 人が閲覧しました

How Can Python's Regular Expressions Find Overlapping Matches?

Python での正規表現との重複一致

パターンが重複している場合でも、すべてのパターンを見つけるのは難しい場合があります。ただし、正規表現の力を利用すると、この問題を簡単に解決できます。

たとえば、より大きな数値文字列から 10 桁の一連の数字をすべて抽出する必要があるとします。重複しない一致に限定する代わりに、重複を考慮して完全なリストを収集できます。

これを達成するには、先読み内でキャプチャ グループを使用することが重要です。先読みでは目的のシーケンスがキャプチャされますが、実際の一致は先読み前のゼロ幅の部分文字列であるため、一致は重複しないままになります。

import re

s = "123456789123456789"
matches = re.finditer(r'(?=(\d{10}))', s)
results = [int(match.group(1)) for match in matches]

print(results)  # [1234567891, 2345678912, 3456789123, ...]
ログイン後にコピー

このアプローチでは、重複する部分を含むリストが生成されます。一致するため、元の文字列内の指定された数字シーケンスのすべてのインスタンスをキャプチャできるようになります。

以上がPython の正規表現は重複する一致をどのように見つけられるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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