sub rails and ruby regex string replace

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 de d , en lugar de un dígito.