Continuando con la serie de artículos sobre Regex es el turno de este nuevo tema que nos va a servir para seguir nutriendo nuestro set de herramientas a la hora de encontrar y formular Regex que nos hagan la vida más fácil y sobre todo entendiendo qué es lo que estamos haciendo a la hora de armar o leer un Regex. Comencemos!

Escapar con barra invertida

Supongamos que tenemos el siguiente ejemplo:

En primera instancia definimos que es lo que se quiere incluir y que se va a excluir:

Continuamos con la búsqueda del patrón:

El patrón claramente es que empieza con una o más x, termina con una o más y, y en el medio encontramos un punto (.). Pero si recordamos bien de artículos anteriores el punto lo usamos como comodín a cualquier caracter, en este caso no queremos hacer eso ya que queremos que tome el punto literalmente.

Es ahí donde tenemos que empezar a usar esta nueva herramienta, escapar un caracter con una barra invertida, que como bien dice, es tomar literalmente al símbolo colocando una barra invertida para identificarlo, es por eso que nuestro Regex quedaría así x*\.y*.

Probándolo en Notepad++ vemos el resultado esperado:

Ahora bien que pasa con este ejemplo:

Al ver que queremos incluir:

Vemos el siguiente patrón:

En este caso claramente vemos algo que ya hicimos en el artículo anterior, tenemos símbolos que pueden ir variando (#, : , .) por lo que utilizamos clases para representarlos, pero vale aclarar algo, aparece nuevamente el punto y debemos tomarlo literalmente. Es muy común pensar que deberemos escaparlo con la barra invertida, pero en este caso no es necesario, ya que el punto al estar dentro de una clase se toma como un valor literal por lo que no hace falta. Y nuestra Regex quedaría x[#:.]y.

Probando el ejemplo con Notepad++ tenemos el resultado esperado:

Siguiendo con un ejemplo parecido:

Lo que queremos incluir en este caso es:

Y el patrón resultante es:

A diferencia del ejemplo anterior vemos un inconveniente, si recordamos el artículo anterior, dentro de una clase el caret (^) se utiliza para negar algo, es por ello que es necesario escaparlo en este caso. Nos quedaría así x[#:\^]y.

El ejemplo en Notepad++ nos muestra el resultado esperado:

Por último tenemos el siguiente ejemplo:

Donde queremos incluir lo siguiente:

El patrón es:

En este ejemplo el problema es muy parecido, pero esta vez son dos los símbolos que queremos escapar, por lo que aplicando la lógica solo deberíamos escapar con la barra invertida a la barra invertida y al caret. Nos quedaría algo así x[#\\\^]y.

En Notepad++ obtenemos el resultado esperado:

Por último quería dejar la solución al ejemplo que vimos en el artículo anterior somospnt\s*[a-c].*Z .


Cabe aclarar que no es la solución definitiva, es una posible solución. Espero que te haya gustado, y gracias por leer este artículo. Nos vemos la próxima.

Mandanos tus sugerencias

Ayudanos con ideas para los artículos de este blog a contacto@somospnt.com

¡Seguínos en nuestras redes sociales para enterarte de los últimos posts!