re = /^(?=.*"key1"\s*:)(?=.*"key2"\s*:)(?=.*"key3"\s*:).*$/m
str = '{ "key1": "some id", "key2": "some id", "key3": "some id", "key4": "irrelevant" }
{ "key1": "some id", "key2": "some id", "key5": "some id", "key4": "irrelevant" }
{ "key1": "some id", "key2": "some id", "key5": "some id", "key3": "irrelevant" }
{ "key1" : "some id", "key2" : "some id", "key5": "some id", "key3" : "irrelevant" }'
# 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