ホームページ > バックエンド開発 > Python チュートリアル > Python の「re」モジュールを使用して、文字列内の重複する 10 桁の数値シリーズをすべて見つけるにはどうすればよいですか?

Python の「re」モジュールを使用して、文字列内の重複する 10 桁の数値シリーズをすべて見つけるにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-29 22:31:11
オリジナル
970 人が閲覧しました

How Can I Find All Overlapping 10-Digit Number Series in a String Using Python's `re` Module?

重複する正規表現の一致: すべての一連の数値の検索

はじめに

次のような疑問が生じます。 「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 サイトの他の関連記事を参照してください。

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