重複する正規表現の一致: すべての一連の数値の検索
はじめに
次のような疑問が生じます。 「re」を使用して、より大きな数字のコレクション内で重複する 10 桁の数字シリーズをすべて見つける方法Python 2.6 のモジュール。重複しない一致は簡単ですが、すべての出現を抽出するのは困難であることがわかります。
解決策
この問題に対処するには、先読み内でキャプチャ グループを使用できます。先読みにより目的のシーケンスが特定されますが、実際の一致はその前の幅ゼロの部分文字列に対応し、重複しないことが保証されます。
実装
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]
説明
正規表現(?=(d{10})) は、そのすぐ右側に 10 桁の数値系列 (d{10}) を表すキャプチャ グループがあることを主張します。先読みでは文字が消費されないため、実際の一致は先読みに先行する長さ 0 の部分文字列、つまり個々の 10 桁の系列になります。
以上がPython の「re」モジュールを使用して、文字列内の重複する 10 桁の数値シリーズをすべて見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。