re = /(?xs)
(?<!')(?:'{2})*\B('\b[^'\\]*(?:(?:\\.|\b'\b)[^'\\]*)*') # Single quoted string literal
| # or
(?<!")(?:"{2})*\B("\b[^"\\]*(?:(?:\\.|\b"\b)[^"\\]*)*") # Double quoted string literal/m
str = 'I am "looking for" a way that doesn\'t break: "Lorem
ipsum\\" AAAAA" in this case. Or this AAAAA case. Or this \'AAAAA\' case.
Isn\'t this annoying?
I used to love the song Space Truckin\'. It is \'AAAAA\'.'
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html