Введение

Символ, имеющий особое значение для компьютерной программы.

Метасимвол — это символ, имеющий особое значение для компьютерной программы, например, интерпретатора командной строки или движка регулярных выражений (regex). В расширенных регулярных выражениях POSIX существует 14 метасимволов, которые необходимо экранировать (предварять обратной косой чертой (\)) для подавления их специального значения и интерпретации как литеральных символов внутри выражения: открывающие и закрывающие квадратные скобки ([ и ]); обратная косая черта (\); символ карет (^); знак доллара ($); точка (.) ; вертикальная черта/пайп (|); вопросительный знак (?); звездочка (*); знаки плюс и минус (+ и -); открывающие и закрывающие фигурные скобки ({ и }); и открывающие и закрывающие круглые скобки (( и )). Например, чтобы сопоставить арифметическое выражение (1+1)*3=6 с помощью regex, правильный regex будет \(1\+1\)\*3=6; в противном случае, круглые скобки, знак плюс и звездочка будут интерпретированы как специальные символы.

Другие примеры

Некоторые другие символы могут иметь особое значение в определенных средах. В некоторых Unix-оболочках точка с запятой (";") является разделителем команд. В XML и HTML амперсанд ("&") обозначает HTML-сущность. Он также имеет особое значение в командной строке MS DOS/Windows. В некоторых Unix-оболочках и командной строке MS DOS/Windows символы меньше и больше ("<" и ">") используются для перенаправления, а обратная кавычка/гравис ("`") – для подстановки команд. В SQL знак процента используется как подстановочный символ.

Бегство

Термин "экранирование метасимвола" означает лишение метасимвола его специального значения, заставляя его интерпретироваться буквально. Например, в PCRE точка (".") обозначает любой одиночный символ. Регулярное выражение "A.C" будет соответствовать "ABC", "A3C" или даже "A C". Однако, если точку экранировать, она потеряет свой метасимвольный смысл и будет интерпретироваться буквально как ".", в результате чего регулярное выражение "A\.C" будет соответствовать только строке "A.C". Обычно символ экранируют, добавляя перед ним обратную косую черту ("\"). В других средах могут использоваться другие методы, например, в MS DOS/Windows Command Prompt, где вместо этого используется символ каретки ("^").