Python

【Python】文字列から連続する空白を削除


自然言語処理のデータ前処理では、対象の文字列から連続する空白(又はスペース)を削除し、単一の空白に置き換える作業を行うことがあります。

本記事では、文字列から連続する空白を削除する方法について簡単に解説します。

実際にプログラムを作成してみる

文字列から連続する空白を削除する方法の概要、実装例を紹介します。

アプローチ

この処理を行うに当たっては、正規表現を利用します。

後述のメソッドを用いて連続する空白を表す正規表現を単一の空白で置き換える形になります。

なお、連続する空白を表す正規表現は以下の通りです。

連続する空白を表す正規表現 : ' +'
-----------------------------------
 + : 直前の文字が 1回以上 繰り返す場合にマッチ

実装例

上記のアプローチを基にプログラムを作成します。

import re

if __name__ == '__main__':

    string = 'start                     end'
    print('Before : \n{0}\n'.format(string))

    a = ' +'  # 1つ以上連続したスペースを表す正規表現
    b = ' '   # 単一のスペース
    string = re.sub(a, b, string)  # 引数1を引数2で置き換える(引数3の文字列が対象)
    print('After  : \n{0}'.format(string))

このプログラムを実行すると以下の出力結果が得られます。

Before :
start                     end

After  :
start end

出力結果から無事に連続する空白の削除が完了していることがわかります。