正規表現でメタ文字をエスケープして通常の文字として扱う

広告

メタ文字として使われるドット(.)や縦棒(|)などはパターンの中で使われると特別な意味を持ちますが、バックスラッシュ(¥)を使ってエスケープすることで文字としてマッチさせることができます。ここではメタ文字をエスケープして通常の文字として扱う方法について解説します。

メタ文字をエスケープする

メタ文字をエスケープするにはメタ文字の前にバックスラッシュ(¥)を記述してください。

¥.
¥?
¥+
¥|

例えば次のような正規表現のパターンで考えてみます。

example¥.com

"example" 、 "." 、 "com" 、と続くパターンとなります。この中で "." はメタ文字として使われる文字のためバックスラッシュ(¥)を使ってエスケープを行い文字としてマッチさせています。このパターンとマッチする文字列は例えば次のようなものになります。

〇 example.com
× example_com

このようにメタ文字のとして使用されている文字の前にバックスラッシュ(¥)を記述することで、メタ文字ではなく文字として扱うことができます。

バックスラッシュ(¥)と文字で改行などの特殊な文字を表現する

改行やタブなど特殊な文字にマッチさせるためにバックスラッシュ(¥)と文字を組み合わせたメタ文字が利用できます。

¥f  改ページ
¥n  改行
¥r  復帰
¥t  タブ
¥v  垂直タブ

また同じ種類の複数の文字をまとめたメタ文字も利用できます。

¥d  数字 [0-9]
¥D  数字以外 [^¥d]
¥w  英数字とアンダーバー [0-9a-zA-Z_]
¥W  英数字とアンダーバー以外 [^¥w]
¥s  空白文字 [ ¥f¥n¥r¥t¥v]
¥S  空白文字以外 [^¥s]

例えば次のような正規表現のパターンで考えてみます。

090-¥d{4}-¥d{4}

"090-" 、数字が 4 つ連続する文字、 "-" 、数字が 4 つ連続する文字と、続くパターンとなります。このパターンとマッチする文字列は例えば次のようなものになります。

〇 090-1234-5678
〇 090-0000-0000
× 090-12ab-3456
× 090-123-4567

注意事項として正規表現を使用するすべてのツールやプログラミング言語でこれらのメタ文字がすべて使えるわけと保証されているわけではありません。ご自身が正規表現を使おうとしているツールや言語でサポートされているかどうかを確認されてください。

-- --

メタ文字をエスケープして通常の文字として扱う方法について解説しました。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。