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()を選ぶとよいでしょう。
-
Pythonの正規表現を使って文字列から数字のみを抽出・マッチングする方法
Pythonでは、標準ライブラリの re モジュールを使うことで、正規表現によるパターンマッチングが簡単に行えます。文字列から「数字のみ」を取り出したい場合は、メタ文字 \d(任意の1桁の数字に一致)を使用します。ここでは、代表的な2つの方法——re.search() と re.findall() を使った例を紹介します。なお、コードはPython 3系の記法に準拠しています。例1:re.search() で最初に見つかった数字の並びを取得する次のコードは、指定した文字列の中から最初に出現する連続した数字(1桁以上)を検索し、マッチオブジェクトとして返します。import re m = re
-
Pythonで隠しファイルと隠しフォルダーを削除する方法
隠しファイルの判定方法 Unix系OS(macOS、Linuxなど)では、隠しファイルは「.」(ドット)で始まるという命名規則があるため、Pythonのstartswith()メソッドを使ったシンプルな判定でフィルタリングできます。 一方、Windowsではファイル名だけでは判断できません。win32apiモジュールを使ってファイル属性を取得し、「隠しファイル」または「システムファイル」属性が設定されているかどうかを確認する必要があります。これらのモジュールはpywin32パッケージに含まれているため、事前にインストールしておきましょう。 サンプルコード 以下のコードを実行すると、カレントデ