Pregunta

No entiendo lo que está pasando aquí. ¿Cómo debo alimentar gsub para obtener la cadena "Yaho \ 'o"?

>> "Yaho'o".gsub("Y", "\\Y")
=> "\\Yaho'o"
>> "Yaho'o".gsub("'", "\\'")
=> "Yahooo"
¿Fue útil?

Solución

\ '$' significa que es todo lo que después del partido. Escapar de la \ nuevo y funciona

"Yaho'o".gsub("'", "\\\\'")

Otros consejos

"Yaho'o".gsub("'", "\\\\'")

Debido a que está escapando el carácter de escape, así como escape de la comilla simple.

Esto también lo hará, y es un poco más fácil de leer:

def escape_single_quotes(str)
  str.gsub(/'/) { |x| "\\#{x}" }
end

Si quieres escapar tanto una comilla sencilla y una barra invertida, de manera que se puede incrustar esa cadena en una cadena entre comillas dobles rubí, a continuación, la siguiente lo hará por usted:

def escape_single_quotes_and_backslash(str)
  str.gsub(/\\|'/) { |x| "\\#{x}" }
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top