Escaping single and double quotes in a string in ruby?

How can I escape single and double quotes in a string?

I want to escape single and double quotes together. I know how to pass them separately but don't know how to pass both of them.

e.g: str = "ruby 'on rails" " = ruby 'on rails"


My preferred way is to not worry about escaping and instead use %q, which behaves like a single-quote string (no interpolation or character escaping), or %Q for double quoted string behavior:

str = %q[ruby 'on rails" ] # like single-quoting
str2 = %Q[quoting with #{str}] # like double-quoting: will insert variable

See https://docs.ruby-lang.org/en/trunk/syntax/literals_rdoc.html#label-Strings and search for % strings.


Use backslash to escape characters

str = "ruby \'on rails\" "

Here is a complete list:

enter image description here

From http://learnrubythehardway.org/book/ex10.html


You can use Q strings which allow you to use any delimiter you like:

str = %Q|ruby 'on rails" " = ruby 'on rails|

>> str = "ruby 'on rails\" \" = ruby 'on rails"
=> "ruby 'on rails" " = ruby 'on rails"