ホームページ > バックエンド開発 > Python チュートリアル > Python 正規表現を使用して重複する一致をすべて検索する方法

Python 正規表現を使用して重複する一致をすべて検索する方法

Susan Sarandon
リリース: 2024-12-16 03:57:15
オリジナル
489 人が閲覧しました

How to Find All Overlapping Matches Using Python Regex?

Python で Regex を使用した重複する一致の検索

検索操作では、多くの場合、ファイル内の特定のパターンの複数の出現を識別して取得する必要があります。大きなテキスト。一致が重複する場合、標準の正規表現一致手法では一部のインスタンスが失われる可能性があります。この質問では、Python の正規表現を使用して重複する一致をすべて見つける方法を検討します。

目標は、指定された数値シーケンス内のすべての 10 桁の数値セットを抽出することです。たとえば、文字列「123456789123456789」では、次の情報を取得することを目的としています。

[1234567891,2345678912,3456789123,4567891234,5678912345,6789123456,7891234567,8912345678,9123456789]
ログイン後にコピー

キャプチャ グループと先読み

これを達成するには、内部でキャプチャ グループを使用します。先読み。先読みによって対象のテキスト (ここでは 10 桁の数字) が識別されますが、実際の一致は先読みの前の幅 0 の部分文字列です。これにより、重複しない一致が得られます。

実装

finder メソッドを使用すると、次のように一致を取得できます。

import re
s = "123456789123456789"
matches = re.finditer(r'(?=(\d{10}))', s)
results = [int(match.group(1)) for match in matches]
ログイン後にコピー

出力結果は、重複する一致の目的のリストを返します:

[1234567891,
 2345678912,
 3456789123,
 4567891234,
 5678912345,
 6789123456,
 7891234567,
 8912345678,
 9123456789]
ログイン後にコピー

このアプローチ指定されたパターンの重複するすべての出現を効率的に抽出し、包括的なテキスト処理のための貴重な技術を提供します。

以上がPython 正規表現を使用して重複する一致をすべて検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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