re = /(?:(?:^|\G(?<!^)[^'"]*")[^"]*+(?:"[^"']*"[^"]*)*+"|\G(?<!^))[^'"]*+(')/
str = '" This is a random sentence \' with \'a quote, the quote should match"
" There is no quote here thats the problem" Anything here should not match but now it does: \' .
" Some text " some more text " this is a quote : \' that should match"
" When there is a quote (\') here, the other one does not work : " \' and that\'s perfect " even if you remove the first one this : " (\') " will make it work because of the greedy ( I think ) but ifyou remove those between parenthesis, the other one is matching as of now, which I do not want to happen."
Another example would be this one : The following should not work, but it does "This is being quoted" not this: (\') " and this is also being quoted "
"\'"
'
# 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