Pythonの正規表現でスペースや改行だけにマッチさせる方法
Pythonで文字列の中から空白文字(半角スペース、改行など)だけを取り出したい場合は、標準ライブラリのreモジュールを使うのが最も簡単です。鍵となるのは特殊文字クラス\sです。\sはスペース・タブ・改行・復帰といった「空白文字全般」にマッチし、量指定子+を組み合わせれば、連続する空白をひとまとまりとして抽出できます。
サンプルコード
次の例では、re.findall()を使って、与えられた文字列に含まれる空白部分だけをすべて検出し、表示しています。
import re foo = ' I find\n Tutorialspoint\n useful' result = re.findall(r'\s+', foo) print(result)
実行結果
[' ', '\n ', '\n ']
コードの解説
- r'\s+':raw文字列で表した正規表現パターンです。
\sが1つ以上連続する部分にマッチします。 - re.findall():マッチしたすべての部分をリストとして返します。ここでは先頭のスペース、および各行末の「改行+スペース」が要素として取得されています。
補足:スペースと改行だけに限定したい場合
\sはタブ(\t)なども含む点に注意してください。「半角スペースと改行のみ」に厳密に絞りたい場合は、文字クラス[ \n]を使用します。
result = re.findall(r'[ \n]+', foo) print(result)
このように、用途に応じて\s+と[ \n]+を使い分けることで、意図した通りの空白抽出が可能になります。
-
【Python入門】文字列が空白(スペース・タブ・改行)のみかどうかを判定する2つの方法
Pythonでは、文字列が「空」——つまりスペース、タブ、改行などの空白文字のみで構成されているかどうかを簡単にチェックできます。主な方法は以下の2つです。 文字列メソッド isspace() を使う方法 re モジュールの正規表現を使う方法 それぞれの使い方を詳しく見ていきましょう。 方法1:isspace() メソッドを使う str 型が持つ isspace() メソッドは、文字列が空白文字だけで構成されていて、かつ1文字以上ある場合に True を返します。通常の文字が1つでも含まれていれば False となります。 サンプルコード print(Hello world.isspace
-
Pythonで引数リスト(*args)を使って関数を呼び出す方法を徹底解説
Pythonで*argsを使った関数呼び出しの基本Pythonでは、アスタリスク(*)を使うことで、可変長の引数を柔軟に扱えます。ここでは、関数定義時と関数呼び出し時における * の役割の違いを、サンプルコードとともに解説します。関数定義時の * の意味def baz1(foo, *args):args の横にある * は、「渡された残りのパラメータをすべて受け取り、args という名前のタプルに格納する」という意味です。これにより、任意の個数の位置引数を受け取れる関数を定義できます。関数呼び出し時の * の意味foo(*args)一方、呼び出し側で args の横に * を付けると、「arg