rails - ¿Cómo puedo reemplazar cada instancia de un patrón en ruby?
ruby string replace character (2)
string.sub
parece que solo reemplaza la primera instancia. ¿Hay alguna opción para ese u otro método que pueda reemplazar todos los patrones? ¿Puedes hacerlo dentro de un regex como perl?
(Creo que algo como r / blah / blah /)
... y +1 a cualquier persona que pueda decirme POR QUÉ EN TIERRA ¿ string.sub
reemplaza solo la PRIMERA coincidencia?
Podría explicar por qué sub
simplemente reemplaza la primera coincidencia de un patrón, pero creo que la documentación lo hace mucho mejor (desde ri String#sub
en la línea de comandos):
str.sub(pattern, replacement) => new_str
str.sub(pattern) {|match| block } => new_str
Returns a copy of _str_ with the _first_ occurrence of _pattern_
replaced with either _replacement_ or the value of the block.
String.gsub debería hacer el truco.
Citando documentos:
gsub(pattern, replacement) → new_str
Devuelve una copia de str con todas las apariciones de patrón sustituidas por el segundo argumento. El patrón es típicamente un Regexp; si se da como una Cadena, cualquier metacarácter de expresión regular que contenga se interpretará literalmente, por ejemplo,
//d
coincidirá con una reacción negativa seguida ded
, en lugar de un dígito.