Lunes, 06 de abril, 2009 | Autor:

Un colega está mirando para aprender regex así que decidí póngalo aquí. Este es el primero de una serie de artículos relacionados con el regex-. En las partes a seguir, vamos a estar usando nuestra Expresiones regulares para aprender otros temas relevantes a Internet mientras simltaneously expandiendo el conocimiento de expresiones regulares.

Regex inicio rápido

  1. La barra vertical |, a veces conocido como un tubo, es un “Oregón” operador en expresiones regulares. Se indica que el patrón a la izquierda oa la derecha es aceptable. En el teclado, esta clave es normalmente el “capital”, o “cambiado la versión”, de la tecla de barra invertida.
  2. Los paréntesis son entre paréntesis () que seleccionar una sección de una expresión regular. Se pueden utilizar de manera similar a en matemáticas cuando el orden de las operaciones se ajusta. La “selección” puede hacer referencia a otro lugar, aunque vamos a cubrir esto más adelante.
  3. La punto . es un carácter especial que coincide con cualquier carácter que no sea “de nueva línea” personajes.
  4. Una barra invertida \ a veces se llama una escape carácter. Hay muchos personajes, tales como los paréntesis y la barra vertical por encima, que tienen un significado especial. La barra invertida se utiliza para quitar (escape) esos significados especiales. Por ejemplo, para especificar un punto final real, que necesita para escapar del carácter especial de puntos: \.
  5. Una estrella * es un operador que indica que el carácter anterior puede repetirse cero o más veces. Esto se combina a menudo con el punto de producir un “comodín” patrón, que coincide con una cadena de cualquier longitud: .*

Uso de la barra vertical y el carácter de escape

Aquí tenemos una serie de ejemplos de direcciones web:

http://dogma.swiftspirit.co.za/
http://swiftspirit.co.za/
http://google.com /

Si quiero un patrón que a todos los partidos, Podría usar la barra vertical (regla 1 arriba) para separarlos. Yo entonces también tenemos que utilizar el carácter de escape (regla 4 arriba) para las paradas completas:

http://dogma . swiftspirit . co . za /|http://swiftspirit . co . za|http://google . com /

Para arriba coincidirá con todos los URI en mi ejemplo sin embargo, no es específicamente eficiente o elegante.

El uso de paréntesis

Lo mismo se puede lograr con la siguiente, más corto, regex, utilizando el paréntesis de la dominación 2 arriba:

http://((|dogma .)swiftspirit . co . za|google . com)/

Nótese que simplemente he colocado elementos comunes, por ejemplo “http://” y “/”, fuera de las selecciones.

¿Qué pasa si usted desea hacer coincidir el texto que podría ser cualquier cosa?

Tal vez usted tiene más que usted todavía desea hacer coincidir? Por ejemplo, si pongo http://swiftspirit.co.za/downloads/ y todavía quiero el patrón para que coincida con esa o cualquier otra url debajo de mi sitio web. O tal vez está bien para http://cualquier cosa.google.com /cualquier cosa que también coincida. Podemos usar el punto especial y caracteres de la estrella de las reglas 3 y 5 desde arriba:

http://((|dogma .)swiftspirit . co . za|(|.*\.)google . com)/.*

Simplemente añadiendo que cualquier personaje puede aparecer cero o más veces deja mucho más partido sin añadir demasiado a la complejidad de la expresión regular:

(|.*\.)

El anterior es de en frente de la pauta google.com. La barra vertical indica dos opciones aquí: ya sea en blanco (por lo que terminamos con sólo google.com), o .*\. (así que tenemos cualquier cosa seguido de un punto literal y que es seguido por google.com).

Práctica hace al maestro

Ya podemos ver en el último ejemplo de que una expresión regular puede llegar a ser muy rápidamente compleja. Al igual que cualquier lenguaje, ser fácilmente capaz de leer una expresión regular requiere práctica. Si usted tiene una necesidad relevante para trabajar con expresiones regulares, usted está adentro para un convite.

Parte 2 debe ser debido a los pocos días. Voy a estar haciendo algunas muy indirecta “trabajo”, demostrando cómo vaciar las memorias caché DNS en una variedad de sistemas.

Compartir
Categoría: informática, idioma
Puedes seguir cualquier respuesta a esta entrada a través de la RSS 2.0 pienso. Usted puede dejar un comentario, o trackback desde tu propio sitio.

One Response

  1. […] have we here? As per part 1, the vertical bar indicates that either “lookupd” Oregón “dscacheutil” son […]

Deja un comentario » Iniciar la sesión