Metacharacter
A metacharacter is a character that has a special meaning (instead of a literal meaning) to a computer program, such as a shell interpreter or a regular expression engine.
In POSIX extended regular expressions,[1] there are 14 metacharacters that must be preceded by a backslash "\" in order to drop their special meaning and be treated literally inside an expression: the open/close square brackets, "[" and "]"; the backslash "\"; the caret "^"; the dollar sign "$"; the period or dot "."; the vertical bar or pipe symbol "|"; the question mark "?"; the asterisk "*"; the plus-sign "+"; open/close curly braces, "{" and "}"; and open/close parenthesis, "(" and ")".[2]
If you want to use any of these characters as a literal in a regex, you need to escape them with a backslash. For example, to match the arithmetic expression "(1+1)*3=6" with a regex, then the correct regex is "\(1\+1\)\*3=6". Otherwise, the parenthesis, plus-sign, and asterisk will have a special meaning.
Examples
- In some Unix shells and Windows PowerShell, the ; (semicolon) character is a statement separator.
- In many regular expression engines, the . (dot) character matches any character, not just a dot.
- In XML and HTML, the & (ampersand) character introduces an HTML entity.
- In many programming languages, strings are delimited using quotes. In some cases, escape characters (and other methods) are used to avoid delimiter collision. Example : "He said : \"Hello\"".