Un metacaracter es un carácter que tiene un significado especial para un programa informático, como un intérprete de shell o un motor de expresiones regulares (regex). Por ejemplo, en XML , el carácter < se interpreta no como texto ordinario (en el que sería el signo de menor que ), sino como un metacaracter que señala el comienzo de una etiqueta XML .
En expresiones regulares extendidas de POSIX
En las expresiones regulares extendidas de POSIX , hay 15 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 ( \); acento circunflejo ( ^); signo de dólar ( $); punto ( .); barra vertical/símbolo de 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=6con 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.
Otros ejemplos
Algunos otros caracteres pueden tener un significado especial en determinados entornos.
- En algunos shells de Unix, el punto y coma (";") es un separador de sentencias .
- En XML y HTML , el signo de ampersand ("&") introduce una entidad HTML . [ 1 ] También tiene un significado especial en MS-DOS / Símbolo del sistema de Windows . [ 2 ]
- En algunos shells de Unix y en el Símbolo del sistema de MS-DOS/Windows, los signos de menor que y mayor que ("<" y ">") se utilizan para la redirección y el acento grave ("`") se utiliza para la sustitución de comandos . [ 2 ]
- En muchos lenguajes de programación , las cadenas se delimitan mediante comillas (" o '). En algunos casos, se utilizan caracteres de escape (y otros métodos) para evitar conflictos de delimitadores , por ejemplo, "Él dijo, \"Hola\"".
- En las cadenas de formato printf , el signo de porcentaje ("%") se utiliza para introducir especificadores de formato y debe escaparse como "%%" para que se interprete literalmente. [ 3 ] En SQL , el porcentaje se utiliza como carácter comodín . [ 4 ]
- En SQL, el guion bajo ("_") se utiliza para coincidir con cualquier carácter individual. [ 4 ]
Escapando
El término "escapar un metacaracter" significa anular su significado (despojarlo de su significado especial), haciendo que tenga su significado literal. Por ejemplo, en PCRE , un punto (".") representa cualquier carácter. La expresión regular "AC" coincidirá con "ABC", "A3C" o incluso "A C". Sin embargo, si se escapa el ".", perderá su significado como metacaracter 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 contextos 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 circunflejo ("^") en su lugar. [ 2 ]
Véase también
Referencias
- ↑ "Referencias a entidades de caracteres en HTML 4" . www.w3.org . W3C . 24 de diciembre de 1999. Consultado el 19 de noviembre de 2018 .
- 1 2 3 "Descripción general del shell de comandos" . docs.microsoft.com . Microsoft . 10 de septiembre de 2009. Consultado el 19 de noviembre de 2018 .
- ↑ "Especificaciones base de The Open Group, número 7: fprintf" . pubs.opengroup.org . The Open Group . 2018. Consultado el 19 de noviembre de 2018 .
- 1 2 "LIKE (Transact-SQL)" . docs.microsoft.com . Microsoft . 14 de marzo de 2017. Consultado el 19 de noviembre de 2018 .
- Lenguajes formales
- Coincidencia de patrones
- Temas de lenguajes de programación
- Temas básicos de lenguajes de programación