メタ文字とは、シェルインタープリタや正規表現(regex)エンジンなどのコンピュータプログラムにとって特別な意味を持つ文字のことです。例えば、XMLでは、<文字は通常のテキスト(小なり記号)としてではなく、 XMLタグの開始を示すメタ文字として解釈されます。
POSIX拡張正規表現では、式の中で特別な意味を捨てて文字通りに扱うために、バックスラッシュ ( ) を付けてエスケープする必要があるメタ文字が 15 個あります。それは、角括弧 (と)、バックスラッシュ ( ) 、キャレット( )、ドル記号( )、ピリオド/ピリオド/ドット ( )、縦棒/パイプ記号 ( )、疑問符 ( )、アスタリスク ( )、プラス記号とマイナス記号 (と)、波括弧 (と)、丸括弧 (と) です。\[]\^$.|?*+-{}()
例えば、算術(1+1)*3=6式を正規表現に一致させるには、正しい正規表現は です\(1\+1\)\*3=6。そうでない場合、括弧、プラス記号、アスタリスクは特別な意味を持ちます。
一部の文字は、特定の環境において特別な意味を持つ場合があります。
「メタ文字をエスケープする」とは、メタ文字を無効にし(その特別な意味を剥奪し)、文字通りの意味を持たせることを意味します。たとえば、PCREでは、ドット (".") は任意の 1 文字を表します。正規表現 "AC" は "ABC"、"A3C"、さらには "A C" にも一致します。しかし、"." をエスケープすると、メタ文字としての意味を失い、文字通り "." として解釈されるため、正規表現 "A\.C" は文字列 "AC" にのみ一致します。
正規表現などで文字をエスケープする一般的な方法は、バックスラッシュ("\"))を文字の前に付けることです。MS-DOS/Windows コマンドプロンプトなど、他の環境では、代わりにキャレット("^"))を使用するなど、異なる方法が採用されている場合があります。[ 2 ]