====== 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 |