Un metacarácter es un carácter que tiene un significado especial para un programa de computadora, como un intérprete de shell o un motor de expresiones regulares (regex).
En las expresiones regulares extendidas POSIX, hay 14 metacaracteres que deben escaparse (precedidos por una barra invertida ( \
)) para eliminar su significado especial y ser tratados literalmente dentro de una expresión: corchetes de apertura y cierre ( [
y ]
); barra invertida ( \
); signo de intercalación ( ^
); signo de dólar ( $
); punto/punto final/punto ( .
); símbolo de barra vertical/tubería ( |
); signo de interrogación ( ?
); asterisco ( *
); signos más y menos ( +
y -
); llaves de apertura y cierre ( {
y }
); y paréntesis de apertura y cierre ( (
y )
).
Por ejemplo, para hacer coincidir la expresión aritmética (1+1)*3=6
con una expresión regular, la expresión regular correcta es \(1\+1\)\*3=6
; de lo contrario, los paréntesis, el signo más y el asterisco tendrán significados especiales.
Algunos otros personajes pueden tener un significado especial en algunos entornos.
El término "escapar un metacarácter" significa hacer que el metacarácter sea ineficaz (despojarlo de su significado especial), haciendo que tenga su significado literal. Por ejemplo, en PCRE , un punto (".") representa cualquier carácter individual. La expresión regular "AC" coincidirá con "ABC", "A3C" o incluso "A C". Sin embargo, si se escapa el ".", perderá su significado como metacarácter y se interpretará literalmente como ".", lo que hará que la expresión regular "A\.C" solo coincida con la cadena "AC".
La forma habitual de escapar un carácter en una expresión regular y en otros lugares es anteponiéndole una barra invertida ("\"). Otros entornos pueden emplear métodos diferentes, como el Símbolo del sistema de MS-DOS/Windows, donde se utiliza un signo de intercalación ("^") en su lugar. [2]