1.10.1.- Entender las expresiones regulares

Las expresiones regulares adoptan dos formas: básica y extendida. La forma básica depende del programa; algunos aceptan una u otra forma, pero otros pueden emplear cualquier tipo, dependiendo de las opciones que se les pasen al programa (algunos programas utilizan sus propias variantes mayores o menores  para cada una de las clases de expresiones regulares). Las diferencias entre expresiones regulares básicas y extendidas son complejas y sutiles, pero los principios fundamentales de ambas son similares.

El tipo más sencillo de expresión regular es una cadena alfabética, como Linux o HWaddr. estas expresiones regulares coinciden con cualquier cadena del mismo o superior tamaño que contenga la expresión regular. Por ejemplo, la expresión regular HWaddr coincide con HWaddr, Esta es la HWaddr y La HWaddr es desconocida. La fuerza real de las expresiones regulares la da el uso de los caracteres no alfabéticos, que activan las reglas avanzadas de comparación:

  • Expresiones entre corchetes.- los caracteres rodeados por corchetes conforma las expresiones entre corchetes, que coinciden con cualquiera de los caracteres entre los corchetes. Por ejemplo, la expresión regular b[aeiou]g coincide con las palabras bag, beg, big, bog y bug.Ejemplo_ExpresionesCorchetes
  • Expresiones de rango.- Una expresión de rango es una variante de una expresión entre corchetes. En lugar de listar todos los caracteres coincidentes, las expresiones de rango listan los puntos de inicio y final separados por un guión (), como en a[2-4]z. Esta expresión regular coincide con a2z, a3z y a4z.Ejemplo_expresionesRango
  • Cualquier caracter único.- El punto (.) representa cualquier único carácter, excepto el salto de línea. Por ejemplo, k.r coincide con kworker o cualquier cadena de tres caracteres (ker) que comiencen por k y termine en r.

    Ejemplo_punto

  • Inicio y comienzo de línea.- El circunflejo (^) representa el comienzo de una línea y el signo del dólar ($) denota el final de una línea.
  • Operadores de repetición.- Una expresión regular completa o parcial puede ir seguida de un símbolo especial para denotar cuántas veces debe aparecer un elemento coincidente. En concreto, un asterisco (*) denota cero o más ocurrencias, un signo de la suma (+) coincide con una o más apariciones y un signo de interrogación (?) especifica cero o una ocurrencia. el asterisco se combina frecuentemente con el punto (como en .*) para especificar una coincidencia con cualquier subcadena. Por ejemplo, A.+Lincoln coincide con cualquier cadena que contenga A y Lincoln, en ese orden (Abe Lincoln y Abraham Lincoln son solo dos de las posibles coincidencias).
  • Varias posibles cadenas.- La barra vertical (|) separa dos posibles coincidencias; por ejemplo, car | truck coinciden con car y truck.
  • Paréntesis.- Los paréntesis normales (()) rodean a las subexpresiones. Los paréntesis se pueden utilizar para especificar cómo se deben aplicar los operadores. Por ejemplo, puede colocar paréntesis alrededor de un grupo de palabras concatenadas con la barra vertical para asegurarse de que las palabras se tratarán como un grupo, sea cual sea la coincidente, sin implicar a otras partes de la expresión regular que lo rodeen.
  • Caracteres de escape.- Si desea comparar uno de los caracteres especiales, como un punto, debe emplear un caracter de escape, es decir, anteponer una barra invertida (\). Por ejemplo, para comparar el nombre de host de un ordenador (por ejemplo, twain.example.com), debe indicar los puntos con caracteres de escape, como en twain\.example\.com.

Las descripciones anteriores se aplican a las expresiones regulares extendidas. Algunos detalles difieren con respecto a las expresiones regulares básicas. En particular, los símbolos ?, +, |, ( y ) pierden sus significados especiales. Para realizar las tareas de las que se ocupan estos caracteres, algunos programas (como grep) le permiten recuperar las funciones de estos caracteres empleando caracteres de escape (es decir, utilizando \| en lugar de |). La decisión de emplear las expresiones regulares básicas o extendidas depende de la forma que soporte el programa. En programas como grep, que soporta ambas, puede emplear la que desee; en este caso, la elección es más bien cuestión de preferencias personales.

Las reglas de las expresiones regulares pueden resultar confusas, sobre todo al principio. Ayúdese de algunos ejemplos para ver como se utilizan dentro del contexto de los programas que las emplean.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s