Al trabajar con expresiones regulares nos encontraremos con espacios y saltos de línea ya que, normalmente, forman parte de casi cualquier texto.
Así que vamos a tener que aprender a gestionar y tratar con ellos 👇.
Espacios
Los espacios son caracteres en blanco que se utilizamos para separar palabras y otros elementos en el texto.
Existen varios tipos de espacios en un texto, como:
- Espacio simple:
- Tabulación:
\t
- Espacio de fin de línea:
\r
(retorno de carro) y\n
(nueva línea)
Para coincidir con un espacio en blanco podemos usar el metacaracter \s
, que incluye espacios, tabulaciones y saltos de línea.
Si queremos encontrar todas las ocurrencias de una palabra que esté precedida o seguida por uno o más espacios, podemos usar el siguiente patrón:
\spalabra\s
Este patrón coincidirá con cualquier aparición de la palabra "palabra"
que esté rodeada de espacios.
aquí espacio palabra y más espacios
sin espacio delantepalabra y palabradetras
Otros símbolos relativos a espacios:
Símbolo | Coincide con |
---|---|
\s | Cualquier espacio en blanco (espacio, tab, salto de línea) |
\S | Cualquier carácter que sea un espacio en blanco |
\t | Un carácter de tabulación (tab) |
Saltos de línea
Los saltos de línea son caracteres que indican el final de una línea de texto. Dependiendo del sistema operativo, los saltos de línea pueden representarse de diferentes maneras:
- Unix/Linux:
\n
- Windows:
\r\n
- Mac (antiguo):
\r
Para coincidir con saltos de línea, utilizamos \n
o \r\n
, dependiendo del sistema operativo.
Si queremos coincidir con líneas que contengan una palabra específica, podemos usar un patrón como el siguiente:
palabra\n
Vamos a probarlo,
otra palabra sin salto linea
Otros símbolos relativos a saltos:
Símbolo | Coincide con |
---|---|
\n | Un salto de línea |
\r | Un retorno de carro |
\v | Un salto de línea vertical |
\f | Un salto de página |
Combinando espacios y saltos de línea
Podemos combinar espacios y saltos de línea para crear patrones más complejos.
Por ejemplo, si queremos encontrar líneas que contengan una palabra específica, y que puedan estar rodeadas de espacios en blanco o saltos de línea, podemos utilizar:
\s*palabra\s*
Este patrón coincidirá con la palabra "palabra"
incluso si hay espacios antes o después.