Ведущий раздел этой статьи , возможно , придется переписать . Причина этого заключается в следующем: определение и наводка касаются только метасимволов регулярного выражения, а статья - нет . ( Апрель 2019 г. ) |
Метасимвол это символ , который имеет особое значение для компьютерной программы, таких как интерпретатор оболочки или регулярное выражение (регулярное выражение) двигатель.
В расширенных регулярных выражениях POSIX есть 14 метасимволов, которые необходимо экранировать (им предшествует обратная косая черта ( \
)), чтобы избавиться от их особого значения и обрабатывать их буквально внутри выражения: открывающие и закрывающие квадратные скобки ( [
и ]
); обратная косая черта ( \
); каретка ( ^
); знак доллара ( $
); период / точка / точка ( .
); символ вертикальной черты / трубы ( |
); вопросительный знак ( ?
); звездочка ( *
); знаки плюс и минус ( +
и -
); открывающие и закрывающие фигурные скобки / фигурные скобки ( {
и }
); открывающие и закрывающие круглые скобки ( (
и )
).
Например, чтобы соответствовать арифметическое выражение (1+1)*3=6
с регулярным выражением, правильное регулярное выражение \(1\+1\)\*3=6
; в противном случае круглые скобки, знак плюса и звездочка будут иметь особое значение.
Некоторые другие символы могут иметь особое значение в некоторых средах.
Термин «избежать метасимвола» означает сделать метасимвол неэффективным (лишить его особого значения), придав ему буквальное значение. Например, в PCRE точка (".") Обозначает любой отдельный символ. Регулярное выражение «AC» будет соответствовать «ABC», «A3C» или даже «A C». Однако если "." экранирован, он потеряет свое значение как метасимвол и будет интерпретироваться буквально как «.», в результате чего регулярное выражение «A \ .C» будет соответствовать только строке «AC».
Обычный способ экранировать символ в регулярном выражении и где-либо еще - это поставить перед ним обратную косую черту ("\"). В других средах могут использоваться другие методы, такие как командная строка MS-DOS / Windows, где вместо нее используется каретка («^»). [2]