開発ブログ

WWWクリエイターズが送る、Git、CSS、HTML、コマンドライン、Macの便利機能など、開発に関する役立ち情報発信します。気まぐれに更新。

正規表現:半角/全角スペースの表現まとめと、空白文字について。

最終更新:2017-10-07 by Joe

正規表現での、全角、半角のスペースの表現についてです。

正規表現におけるスペースの表現

正規表現で、半角スペースと全角スペースは、エスケープが不要な文字のひとつです。ですので、通常通り普通の文字として記述すればOKです。

例)半角か、もしくは全角のスペースをマッチする表現

// 半角スペースを文字クラスで表現。
[ | ]+

文字クラスとは、「[]」のカッコで囲んだ文字列で、カッコの中のいずれかに該当する文字を表すことができます。上記は空白なのででみえませんが、2種類のスペースがパイプ(|)で区切られています。(パイプは書かなくても同じ意味になりますが、ここではわかり易さのために付けています)これにより半角、もしくは、全角のスペースのいずれであってもマッチさせることができます。

文字クラスに続く、「+」は量指定子で、直前のパターンが1つ以上連続する場合はすべてマッチします。

量指定子についてはこちら、

また、こちらに特殊文字の一覧をまとめています。

複数の種類の「空白文字」をまとめて表現

日本語でスペースというと、半角・全角スペースの事を指しますが、文字をデータとして取り扱うとき「空白文字(ホワイトスペース)」とよばれる文字にはいくつかの種類があります。

  • 半角スペース(全角スペースを除く)
  • タブ
  • 改行
  • 改ページ

正規表現では、エスケープシーケンス「\s」を使って、これらの空白文字をまとめて1つの文字で表すこともできます。

例)空白文字の表現

// あらゆる空白文字の1文字以上の連続
\s+

例)空白を含むあらゆる文字の表現

「\s」とは対象に、大文字のSを利用したエスケープシーケンス「\S」は、「空白文字以外の文字列」を表現します。これを利用して「空白を含むすべての文字」を表現することができます。

// 空白、改行、タブなどすべての文字の1文字以上の連続
[\s\S]+

通常の正規表現(マルチラインモード)では、特殊文字「.(ドット)」は空白文字以外の文字を表します。量指定子*を組み合わせた表現「.*」は、改行があると、処理がストップしてしまいますが、上記は改行を越えて、処理を行うことができます。

参考

閉じる