正規表現とは
プログラミングで文字列処理を行う時に便利な正規表現。正規表現を用いると、たとえば文字の検索が容易に行えたりします。正規表現は「表現」という言葉のとおり、文字や文字列を、ある規則に従って表現(パターン化)することができるもので、使えるようになると、非常に便利で強力なツールとなります。今回は、その正規表現を用いてスペース文字を制御してみます。
正規表現での「スペース」の書き方
正規表現で、文字を判定することが出来るわけですが、メタ文字と言われる特殊文字については、バックスラッシュを判定したい文字の左側に付ける必要があります。半角スペース、全角スペースと2種類のスペース文字が存在しますが、これらは、メタ文字ではないため、普通の文字と記述することが出来ます。
半角スペース
上述したように、半角スペースを、そのまま打ちます。
たとえば、量指定子「+」を使用して1つ以上の連続したスペースにマッチするには、’/ +’
のように書きます。
全角スペース
全角スペースも半角スペースと同じく、そのまま打ちます。たとえば、2つ以上の全角スペースが連続することを検索するための正規表現は、 ‘/ {2, }’
の様に書けます。
半角または全角スペース
半角スペースまたは全角スペースにマッチさせるには、[ | ]+
と書けます。「[]」は、囲んだ文字列のうち、いずれかにマッチする文字を表す時に使います。「[]」の中に半角スペースと全角スペースを続けて入力すればマッチします。ここでは、分かりやすいように「|」で区切っていますが、区切らなくてもマッチします。最後の「+」は、直前のパターンが1回以上繰り返しする場合を意味しています。
空白文字
空白文字とは、半角スペースに加え、タブ文字、改行、改ページのことを言います。正規表現で空白文字全てに対してマッチさせるには、\s
と記述します。この空白文字には全角スペースが含まれないことに注意してください。ただし、文字コードがUTF-8の場合は全角スペースもマッチします。最近のプログラミングの文字コードは、殆どUTF-8が使用されているので、全角スペースをマッチさせたくない場合は、注意が必要です。また、\S と大文字のSを使用すると、空白文字以外をマッチさせることが出来ます。
こんな時はどうする?
ウェブサイトのフォームや、入力が必要なシステムでは、ユーザーの誤入力やシステム上の制約などにより、空白文字が存在する場合に削除したいシーンが少なくありません。この様な時も正規表現を用い、一括で削除すると便利です。
スペースを削除したいとき
たとえば文字列中の空白(タブを含む)を全て取り除きたい場合、JavaScriptでは、このように書くことが出来ます。
stringval.replace(/\s+/g, “”)
文字列中の半角・全角スペースを検索・削除
半角スペースおよび全角スペースを全て削除する場合は、以下のように書けます(言語はPHP)。
preg_replace("/( | )/", "", $str )
まとめ
今回は、正規表現を使用し、スペース・空白文字を表現することについて説明しました。正規表現は、非常に強力な手法で、プログラミングのみではなくLinuxなどのシステム制御など使用シーンも多く、覚えると広範囲で処理や仕事の効率化に役立ち、大変便利なものです。ただし、記号の組み合わせで構成されていることや、希望の表現をすることに慣れるためには、プログラミング表記よりも、覚えることが分かりにくいので、時間はかかるかもしれません。少しずつ、単純なパターンを正規表現を使って勉強していけば良いでしょう。