/ / Acción múltiple en una cuerda en ruby ​​de una vez [cerrado] - ruby

Acción múltiple sobre una cuerda en rubí de una sola vez [cerrada] - rubí

Aquí hay una cadena, un contenido es "hola a todos, soy nuevo aquí (en serio)"
¿Cómo puedo devolver un "hola + todo + I" m + nuevo + aquí "usando el código ruby?

Respuestas

2 para la respuesta № 1

¿Por qué no simplemente encadenar el .gsub() comandos?

x.gsub(/(.*?)/, "").gsub(/s+/,"+")

Además, puede actualizar su primer gsub para eliminar cualquier espacio en blanco que precede a los corchetes también.

x.gsub(/s+(.*?)/, "")

2 para la respuesta № 2

Si realmente quieres usar un solo gsub operación, puede pasar un hash como parámetro de reemplazo:

x.gsub(/( *(.*?)| )/, " " => "+", default: "")
# => "hi+all"

Lo que esto hace es capturar algo entre paréntesis (incluidos los espacios iniciales) o espacios. Si la captura es un espacio, se reemplaza por "+"de lo contrario, se reemplaza por una cadena vacía ""