Por ejemplo:
"Hi! How :) are :) you? I'm :) fine.:)".magic() => "Hi! How are :) you? I'm fine.:)" or => "Hi! How are :) you? I'm :) fine." or ...Solo se debe admitir :) smiley para su eliminación o reemplazo.
Usar:
Código:
class String def magic() len = scan(/:\)/).length pos_to_remove = (0 ... len).to_a.sample(len / 2) gsub(/:\)/).with_index { |_, i| if pos_to_remove.include?(i) then "" else ":)" end } end endLa clave es hacer coincidir dos :) al mismo tiempo, pero solo capturar a uno de ellos en el grupo.
(:\).*?):\)\s*o
:\)\s*(.*?:\)) \1Vea el caso de prueba aquí
"Hi! How :) are :) you? I'm :) fine.:)".gsub(/(:\).*?):\)\s*/, '\1') # => Hi! How :) are you? I'm :) fine.