Pythonの正規表現(Regex)で文字列内の「10+1」パターンをすべて検索する方法
Pythonの正規表現で「10+1」パターンをすべて検索する
与えられた文字列の中から、正規表現パターン「10+1」に一致する部分をすべて見つけたいケースはよくあります。ここでの「10+1」は、「1」の後に「0」が1回以上続き、その後に再び「1」が続く並びを意味します。Pythonでは、標準ライブラリのreモジュールを使うことで、このような検索を簡単に実現できます。
reモジュールにはfindall()という便利なメソッドが用意されています。このメソッドは正規表現パターンと検索対象の文字列を引数に受け取り、マッチしたすべての箇所をリストとして返します。
入力例
10000001 hello world 10011 test100000001test.
この文字列にパターン「10+1」を適用すると、次のような出力が得られます。
出力例
10000001 1001 100000001
実装コード
import re
occ = re.findall("10+1", "10000001 hello world 10011 test100000001test.")
for i in occ:
print(i)
このコードを実行すると、上記の出力例と同じ結果が得られます。
コードのポイント
re.findall(パターン, 文字列):パターンに一致するすべての部分文字列をリスト形式で返します。- パターン「10+1」の中の「0+」は「0が1回以上繰り返される」ことを表すため、「101」「1001」「10000001」などもすべて一致対象になります。
- 戻り値はリストなので、forループで各マッチ結果を順番に取り出して表示しています。
なお、マッチした位置情報も取得したい場合は、代わりにre.finditer()を使うと、各マッチオブジェクトから開始位置や終了位置などの詳細情報を得ることができます。
-
セットを使って文字列内の母音の数をカウントするPythonプログラム
本記事では、Pythonを使って文字列内に含まれる母音の数をカウントする方法について解説します。セット(set)を活用した効率的な実装を中心に、初心者の方にもわかりやすく説明していきます。 問題の概要 問題文:任意の文字列が与えられたとき、その文字列に含まれる母音の数をセットを使って数えます。 基本的なアプローチとしては、文字列全体を先頭から順に走査し、各文字が母音であるかどうかを判定します。母音であればカウントを1ずつ増やしていき、最終的な合計を出力します。 実装例 def vowel_count(str_): count = 0 # 母音をセットとして定義 vowe
-
Pythonで文字列のすべての順列を取得する方法【itertoolsと再帰で解説】
itertools.permutationsを使った方法 Pythonで文字列のすべての順列(並べ替え)を求める最も簡単な方法は、標準ライブラリのitertoolsモジュールにあるpermutations()関数を使用することです。この関数は、イテラブルなオブジェクトから要素を取り出し、指定した長さrの順列をタプルとして順番に返します。 結果を文字列として取得するには、関数の戻り値をループで処理し、各タプルの要素をjoin()で連結します。以下に具体例を示します。 from itertools import permutations result = [.join(p) for p in p