Respuestas:
Las gsiglas de global, como en reemplazar globalmente (todos):
En irb:
>> "hello".sub('l', '*')
=> "he*lo"
>> "hello".gsub('l', '*')
=> "he**o"
replacey replaceAll. Pero Ruby tiene sus raíces en Perl, que usa el gmodificador. Es solo una de esas cosas.
subes mucho más rápido que gsub, hay un punto de referencia aquí github.com/JuanitoFatas/fast-ruby/blob/master/code/string/…
A, sentence, separated, by, commas".gsub!(/(.*),(.*)/,"\\2 \\1") => " commas A, sentence, separated, by" Alguna idea de por qué gsub!solo parece encontrar / reemplazar solo la primera instancia cuando se usan grupos de expresiones regulares?
La diferencia es que subsolo reemplaza la primera ocurrencia del patrón especificado, mientras gsubque lo hace para todas las ocurrencias (es decir, reemplaza globalmente).
suby gsubrealizar el reemplazo de la primera y todas las coincidencias respectivamente.
sub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE)
gsub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE)
sub("4", "8", "An Introduction to R Software Course will be of 4 weeks duration" )
##"An Introduction to R Software Course will be of 8 weeks duration"
gsub("4", "8", "An Introduction to R Software Course will be of 4 weeks duration" )
##"An Introduction to R Software Course will be of 8 weeks duration"