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

Pythonの正規表現を使ってタブや改行を削除する方法

Pythonでは、標準ライブラリのreモジュールを使うことで、正規表現による文字列の置換が簡単に行えます。文字列に含まれるタブや改行などの空白文字を削除(または半角スペースに置き換え)したい場合は、re.sub()関数とパターン\s+を組み合わせるのが定番の方法です。

基本的な使い方

以下のコードは、複数行にまたがる文字列に含まれるタブや改行を、すべて半角スペース1つに置き換える例です。

import re

text = """I find
Tutorialspoint helpful"""

result = re.sub(r"\s+", " ", text)
print(result)

実行結果

I find Tutorialspoint helpful

コードの解説

  • \s:半角スペース、タブ(\t)、改行(\n)、復帰(\r)など、あらゆる空白文字にマッチします。
  • +:直前のパターンが1回以上繰り返される場合にマッチするため、連続した空白もまとめて処理できます。
  • re.sub(r"\s+", " ", text):マッチした部分をすべて指定した文字列(ここでは半角スペース)に置き換えます。

空白を完全に削除したい場合

置き換え後の文字列を空文字列""にすれば、タブや改行を一切残さずに取り除くことも可能です。

import re

text = "Hello\tWorld\nPython"
print(re.sub(r"\s+", "", text))  # 出力: HelloWorldPython

正規表現を使わない代替方法

正規表現を使用しない場合は、split()join()を組み合わせる方法もあります。この方法でも同様に、余分な空白をまとめて1つのスペースに変換できます。

text = """I find
Tutorialspoint helpful"""

print(" ".join(text.split()))  # 出力: I find Tutorialspoint helpful

用途に応じて、正規表現による柔軟な制御が必要ならre.sub()、シンプルに空白を正規化したいだけならsplit()+join()を選ぶとよいでしょう。

  1. Pythonの正規表現を使って文字列から数字のみを抽出・マッチングする方法

    Pythonでは、標準ライブラリの re モジュールを使うことで、正規表現によるパターンマッチングが簡単に行えます。文字列から「数字のみ」を取り出したい場合は、メタ文字 \d(任意の1桁の数字に一致)を使用します。ここでは、代表的な2つの方法——re.search() と re.findall() を使った例を紹介します。なお、コードはPython 3系の記法に準拠しています。例1:re.search() で最初に見つかった数字の並びを取得する次のコードは、指定した文字列の中から最初に出現する連続した数字(1桁以上)を検索し、マッチオブジェクトとして返します。import re m = re

  2. Pythonで隠しファイルと隠しフォルダーを削除する方法

    隠しファイルの判定方法 Unix系OS(macOS、Linuxなど)では、隠しファイルは「.」(ドット)で始まるという命名規則があるため、Pythonのstartswith()メソッドを使ったシンプルな判定でフィルタリングできます。 一方、Windowsではファイル名だけでは判断できません。win32apiモジュールを使ってファイル属性を取得し、「隠しファイル」または「システムファイル」属性が設定されているかどうかを確認する必要があります。これらのモジュールはpywin32パッケージに含まれているため、事前にインストールしておきましょう。 サンプルコード 以下のコードを実行すると、カレントデ