====== Expresiones regulares ======
Las //Expresiones Regulares//, o **RegEx**, son patrones que podemos usar para encontrar una determinada combinación de caracteres dentro de un texto. Las //RegEx// proporcionan una manera muy flexible y poderosa de buscar o reconocer cadenas de texto para luego imprimirlas, modificarlas o cambiar su formato.
Los lenguajes de programación más conocidos soportan RegEx: C, Ruby, XML, Visual Basic, Unix Shell, Java, JavaScript, Python y, por supuesto, Perl.
Existen dos tipos de RegEx en el estándar POSIX: //Expresiones Regulares Básicas// (BRE) y //Expresiones Regulares Extendidas// (ERE). Luego están las PCRE (Expresiones Regulares Compatibles con Perl, escritas en Lenguaje C e inspiradas en Perl.
>Las RegEx fueron definidas en la década del 1950 y tienen su origen en Regular Events, una notación creada por Stephen C. Kleene, matemático estadounidense. No debemos confundir las RegEx con los [[lenguaje_del_interprete_de_comandos#metacaracteres_comodines|comodines de Shell]], ya que éstos últimos __operan únicamente con los nombres de archivos__.
====Armado de Expresiones Regulares====
Las expresiones regulares están compuestas por
* //Caracteres ordinarios// como ''espacio en blanco'', ''_'', ''A-Z'', ''a-z'', ''0-9''.
* //Metacaracteres de RegEx//, son abreviaciones cuyo significado se expande para significar caracteres ordinarios.
^ **Metacaracter RegEx** ^ **Significado** ^
| ''*'' | cero o mas iteraciones del carácter inmediato que lo precede. |
| ''.'' | cualquier carácter ordinario, excepto el ASCII de ''nueva linea''. |
| ''[ carácter(es) ]'' | cualquiera de los caracteres especificados entre corchetes; puede usarse guion ''-'' para delimitar un rango de caracteres tal como ''[a-f]'', ''[1-5]'', etcétera. |
| ''^'' | comienzo de línea en un fichero. |
| ''$'' | final de una línea en un fichero. |
| ''\'' | anula el significado ("escapa") un caracter o metacaracter RegEx. |
====Expresiones Regulares de búsqueda por coincidencia ====
| ''*'' | Coincide cualquier carácter |
| ''\.'' | Cualquier carácter excepto Nueva Línea |
| ''^$'' | Busca líneas vacías (realmente caracteres [[ASCII]] de "nueva línea") |
| ''/cadena/'' | Busca la cadena ''cadena'' |
| ''[cadena]'' | Busca coincidencias de cualquier caracter contenido en ''cadena'' |
| ''[^cadena]'' | Busca coincidencias de cualquier caracter no contenido en ''cadena'' |
| ''g/cadena/'' | Busca globalmente ''cadena'' en el documento |
| ''g/cadena1/s//cadena2/'' | Sustituye globalmente ''cadena1'' por ''cadena2'' |
| ''alternativa1|alternativa2'' | Busca coincidencias entre ''alternativa1'' y ''alternativa2'' |
| ''()'' | Altera el orden de la expresión regular |
| ''^'' | Busca caracter nulo de principio del Documento |
| ''$'' | Busca caracter nulo EOF de final del Documento |