Pythonで正規表現を使って空白文字をマッチングする方法

この記事では、Pythonで正規表現を使用して空白文字をマッチングする方法について解説します。具体的なコード例とその解説、さらに応用例を2つ含めています。

目次

正規表現とは何か

正規表現(Regular Expression)は、テキストデータに対するパターンマッチングの一形式です。これを使用することで、特定の文字列を効率よく検索、置換、または抽出することが可能です。

正規表現の基本的な使い方

Pythonでは`re`モジュールを用いて正規表現を扱います。このモジュールにはテキストの検索や置換に役立つ多くの関数が含まれています。

import re  # reモジュールをインポート

pattern = r'\s'  # 空白文字を表す正規表現
text = "これ は テスト 文字列 です。"

result = re.findall(pattern, text)  # 空白文字を全て抽出
print(result)  # [' ', ' ', ' ', ' ']

空白文字の種類とマッチングパターン

空白文字には複数の種類が存在します。主にスペース、タブ、改行があります。これらにマッチする正規表現もいくつかあります。

主な空白文字とその正規表現

  • スペース: `\s` or `[ ]`
  • タブ: `\t`
  • 改行: `\n`

複数の空白文字をマッチングする場合

# 複数の空白文字(スペース、タブ、改行)にマッチする例
pattern = r'[\s\t\n]+'  # 空白文字、タブ、改行
text = "これ\tは  テスト\n文字列 です。"

result = re.findall(pattern, text)  
print(result)  # ['\t', '  ', '\n', ' ']

応用例

応用例1:HTMLコード内の不要な空白を削除

Webページのローディング速度を向上させるために、HTMLコード内の不要な空白を削除する場合があります。

# HTML内の不要な空白を削除する例
html_code = "

テキスト

" pattern = r'>\s+<' result = re.sub(pattern, '><', html_code) # 置換 print(result) #

テキスト

応用例2:CSVファイルのデータクリーニング

CSVファイルに含まれるデータに余計な空白が含まれている場合、それを削除することがあります。

# CSVデータ内の不要な空白を削除する例
csv_data = "名前 ,年齢 ,性別\nTaro ,30 ,男"
pattern = r'\s*,\s*'

result = re.sub(pattern, ',', csv_data)  # 置換
print(result)  # 名前,年齢,性別\nTaro,30,男

まとめ

正規表現を使用することで、Pythonにおいてさまざまな種類の空白文字に効率よくマッチングすることができます。この知識を応用して、テキストデータの処理をより高度に行いましょう。

コメント

コメントする

目次