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 escaparse (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 ( \
); caret ( ^
); 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.
Otros ejemplos
Algunos otros personajes pueden tener un significado especial en algunos entornos.
- En algunos shells de Unix, el punto y coma (";") es un separador de instrucciones .
- En XML y HTML , el ampersand ("&") introduce una entidad HTML . [1] También tiene un significado especial en el símbolo del sistema de MS-DOS / Windows . [2]
- En algunos shells de Unix y MS-DOS / Windows Command Prompt, el signo menor que y el signo mayor que ("<" y ">") se usan para la redirección y el acento grave / comillas inversas ("` ") se usa para sustitución de mando . [2]
- En muchos lenguajes de programación , las cadenas se delimitan mediante comillas ("o '). En algunos casos, los caracteres de escape (y otros métodos) se utilizan para evitar la colisión del delimitador , por ejemplo," Dijo, \ "Hola \" ".
- En cadenas de formato printf , el signo de porcentaje ("%") se usa para introducir especificadores de formato y debe escaparse como "%%" para ser interpretado literalmente. [3] En SQL , el porcentaje se utiliza como carácter comodín . [4]
- En SQL, el guión bajo ("_") se utiliza para coincidir con cualquier carácter. [4]
Escapando
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 prefijarlo con una barra invertida ("\"). Otros entornos pueden emplear diferentes métodos, como MS-DOS / Windows Command Prompt, donde en su lugar se usa un signo de intercalación ("^"). [2]
Ver también
Referencias
- ^ "Referencias de entidad de carácter en HTML 4" . www.w3.org . W3C . 24 de diciembre de 1999 . Consultado el 19 de noviembre de 2018 .
- ^ a b c "Descripción general del shell de comandos" . docs.microsoft.com . Microsoft . 10 de septiembre de 2009 . Consultado el 19 de noviembre de 2018 .
- ^ "Las especificaciones de base de Open Group Issue 7: fprintf" . pubs.opengroup.org . El grupo abierto . 2018 . Consultado el 19 de noviembre de 2018 .
- ^ a b "ME GUSTA (Transact-SQL)" . docs.microsoft.com . Microsoft . 14 de marzo de 2017 . Consultado el 19 de noviembre de 2018 .