2011-07-19 12 views
6

¿Cuál es una buena forma de hacerlo? Parece que podría usar una combinación de algunos métodos diferentes para lograr lo que quiero, pero probablemente haya un método más simple que estoy pasando por alto. Por ejemplo, la función PHP preg_replace hará esto. ¿Algo parecido en Ruby?Una buena forma de insertar una cadena antes de una coincidencia de expresiones regulares en Ruby

ejemplo sencillo de lo que estoy planeando hacer:

orig_string = "all dogs go to heaven" 
string_to_insert = "nice " 
regex = /dogs/ 

end_result = "all nice dogs go to heaven" 
+0

¿Es adecuado para sus requirenents para reemplazar 'perros' a 'buenos perros? – Anatoly

Respuesta

3
result = subject.gsub(/(?=\bdogs\b)/, 'nice ') 

La expresión regular verifica para cada posición en la cadena si la palabra completa dogs puede coincidir allí, y luego inserta la cadena nice allí.

La palabra anclas de contorno \b aseguran que no coinciden accidentalmente hotdogs etc.

+0

Nice regex, gracias por el ejemplo! – Axl

Cuestiones relacionadas