Paso 1: Add this to your bookmarks. Cada vez que necesito para buscar expresiones regulares, es mi primera parada
Paso 2: Vamos a caminar a través de su código
text.gsub(/\s/, "-")
Estás llamando a la función gsub
, y dándole 2 parámetros.
El primer parámetro es /\s/
, que es el rubí para "crear una nueva expresión regular que contiene \s
(la // son como especial '' para expresiones regulares).
El segundo parámetro es la cadena "-"
.
Esto, por tanto, sustituir todos los personajes de espacio en blanco con guiones. Hasta ahora, todo bien.
.gsub([^\W-], '').downcase
A continuación, vuelva a llamar a gsub pasándole 2 parámetros. El primer parámetro es [^\W-]
. Como no lo citamos en barras inclinadas hacia adelante, ruby literalmente intentará ejecutar ese código. []
crea una matriz, luego trata de poner ^\W-
en la matriz, que no es un código válido, por lo que se rompe.
Cambiándolo a /[^\W-]/
nos da una expresión regular válida.
En cuanto a la expresión regular, el []
dice 'coincide con cualquier carácter de este grupo. El grupo contiene \W
(que significa carácter no de palabra) y -
, por lo que la expresión regular debe coincidir con cualquier carácter no de palabra o cualquier guión.
A medida que la segunda cosa que pase a gsub es una cadena vacía, se debe llegar a la sustitución de todos los caracteres no-palabra y guiones con la cadena vacía (separándose así fuera)
.downcase
Lo cual convierte la cuerda a minúsculas
Espero que esto ayude :-)
Hermoso. Eso funcionó perfectamente. Gracias. – scubabbl