Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonにおける正規表現[\d+]の仕組みをわかりやすく解説

Pythonのreモジュールを使うと、文字列から特定のパターンに一致する部分を簡単に抽出できます。本記事では、正規表現「[\d+]」が対象の文字列に対してどのように動作するのか、具体的なコード例とともに解説します。

正規表現「[\d+]」の意味

[\d+]」は文字クラス([ ])を使用したパターンで、次のいずれか1文字にマッチします。

  • \d … 半角数字1文字(0〜9)
  • + … プラス記号そのもの

ここで重要なのは、通常「+」は「直前のパターンの1回以上の繰り返し」を表す量指定子ですが、角括弧の中では単なるリテラル文字として扱われるという点です。したがって「[\d+]」は「数字または『+』のいずれか1文字」という意味になります。

コード例

import re

result = re.findall(r'[\d+]', 'Taran123tula+456')
print(result)

実行結果

['1', '2', '3', '+', '4', '5', '6']

結果の解説

re.findall()関数は、パターンに一致したすべての要素をリストとして返します。この例では、文字列「Taran123tula+456」から数字と「+」が1文字ずつ順番に抽出されています。英字部分(「Taran」「tula」)はパターンに一致しないため、結果には含まれません。

なお、Python 3ではprintは関数として扱われるため、上記のコードではprint(result)のように括弧を付けて記述しています。

  1. Pythonの正規表現における修飾子(フラグ)の使い方と機能一覧

    Python正規表現の修飾子とはPythonのreモジュールでは、正規表現によるパターンマッチングの挙動を制御するために、さまざまな修飾子(フラグ)を指定することができます。これらの修飾子を使うことで、大文字小文字の区別や改行の扱いなど、マッチングの動作を柔軟に変更できます。以下に、主要な修飾子とその機能を一覧形式で紹介します。1. re.I(re.IGNORECASE)大文字と小文字を区別せずにマッチングを行います。英字の大小を無視したい場合に便利です。2. re.L(re.LOCALE)現在のロケール設定に従って単語を解釈します。このフラグは、アルファベット系のグループ(\w および \W

  2. Pythonにおけるアンダースコア(_)の意味と使い方をわかりやすく解説

    Pythonでは、アンダースコア(_)は特別な役割を持つ記号です。一見ただの文字に見えますが、実際にはインタープリタの動作や命名規則、数値リテラルの表記など、さまざまな場面で重要な働きをします。この記事では、Pythonでアンダースコアが使われる主な5つのケースを、コード例とともにわかりやすく解説します。1. インタープリタで直前の式の値を保持するPythonの対話モード(インタープリタ)では、直前に評価した式の結果が、特別な変数「_」に自動的に格納されます。計算結果をすぐに再利用したいときに非常に便利です。使用例>>> 12 + 10 22 >>> _ 2