Diferencia entre revisiones de «Hacks para sistemas operativos Unix-like/Usando expresiones regulares»

Contenido eliminado Contenido añadido
Correcciones ortográficas y de estilo.
Drinibot (discusión | contribs.)
m Corrección asistida de errores ortográficos (no corre en modo automático)
 
Línea 4:
Una expresión regular es una forma de representar a los lenguajes regulares (finitos o infinitos) y se construye utilizando caracteres del alfabeto sobre el cual se define el lenguaje.
 
Las expresiones regulares son una poderosa herramienta para manipular textos y datos, con el uso de expresiones regulares usted puede ahorrar tiempo y problemas a manipular documentos, mensajes de correo electrónico (e-mail), archivos de registro, cualquier tipo de información que contenga texto o datos, por ejemplo, las expresiones regulares juegan un papel importante en la construcción de programas que corren sobre internetInternet (cgi-bin), ya que pueden implicar textos y datos de todo tipo.
 
Las expresiones regulares no son un programa de computadora pero son incluidas como parte de un programa mas grande, el clásico ejemplo es grep2, una potente utilidad comúnmente utilizada en Unix; Las expresiones regulares pueden ser encontradas en:
Línea 14:
El origen de las expresiones regulares recae en la teoría de autómatas y la teoría formal de lenguajes (juntos parte de la teoría de las ciencias de la computación). Estos campos estudian modelos de computación (autómata) y formas de describir y clasificar lenguajes formales. En los años 40's Warren McCulloch y Walter Pitts describieron el sistema nervioso describiendo a las neuronas como pequeños y simples autómatas. El matemático Stephen Kleene describió estos modelos usando su propia notación matemática llamada conjuntos regulares. El famoso científico de computación Ken Thompson, uno de los creadores de Unix, implemento esta notación en el editor de texto qed, después en el editor de texto ed y eventualmente en grep. Desde ese tiempo las expresiones regulares han sido ampliamente usadas en Unix y programas tipo Unix como: expr, awk, emacs, vim, lex, perl ...
 
En la sintaxis básica de regexp para Unix, la mayoría de los caracteres son tratados como literales que solo se cumplen para si mismos (a se cumple para a, ab, aab, etc; abc se cumple para abc, abcc, abcb, etc).
 
Las excepciones a esta regla son los llamados meta-caracteres:
 
*'''.''' Cualquier carácter que aparezca una vez.
*'''[ ]''' Cualquier carácter que aparezca una vez, que se encuentre entre las llaves. ej. [abc] sirve para a, b, o c, [a-z] sirve para las minúsculas (entiéndase como un rango entre a y z), [abcdq-z] es cumplida por a, b, c, d, q, r, s, t, u, v, w, x, y, z, asiasí como [a-dq-z].
*'''[^]''' Cualquier carácter que aparezca una vez, que no esté contenido entre las llaves, ej [^abc] es cumplida por cualquier carácter menos a, b y c, [^a-z] es cumplida por cualquier carácter que no sea minúscula.
*'''^''' Comienzo de línea, ej ^a todas las cadenas que comiencen por a.
*'''$''' Cumplida por el fin de linealínea, ej $a todas las cadenas que terminen en a.
*'''*''' Una expresión que simbolice un solo carácter seguido de un asterisco es cumplido por 0 o más copias de las expresiones, ej x* se cumple para: xxc xa xxxb xaos.
No hay representación para la unión.