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 expresión regular (regex).
En las expresiones regulares extendidas POSIX, hay 14 metacaracteres que deben tener caracteres de escape (precedidos por una barra invertida ( \
)) para eliminar su significado especial y ser tratados literalmente dentro de una expresión: abrir y cerrar corchetes ( [
y ]
); barra invertida ( \
); cursor ( ^
); signo de dólar ( $
); punto/punto/punto ( .
); símbolo de barra/tubería vertical ( |
); signo de interrogación ( ?
); asterisco ( *
); signos más y menos ( +
y -
); abrir y cerrar llaves/llaves ( {
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 de 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 el "." se escapa, perderá su significado como metacarácter y se interpretará literalmente como ".", lo que provocará que la expresión regular "A\.C" solo coincida con la cadena "AC".
La forma habitual de escapar de un carácter en una expresión regular y en otros lugares es anteponiendo una barra invertida ("\"). Otros entornos pueden emplear métodos diferentes, como el símbolo del sistema de MS-DOS/Windows, donde en su lugar se utiliza un signo de intercalación ("^"). [2]