re = /(?=Scenario).+?\bdog\b.+?(?=Scenario|$)/m
str = 'Scenario: lady swallows fly Given a lady and lady swallows a "fly" then lady lives
Scenario: lady swallows spider Givendoga a lady and lady swallows a "fly","spider" then lady lives
Scenario: lady swallows everything Given a lady and lady swallows a "fly","spider","cat","dog","cow" then badog lady Dies Scenario: lady swallows fly Given a lady and lady swallows a "fly" then lady lives
Scenario: lady swallows spider Given a lady and lady swallows a "fly","spider" then lady lives
Scenario: lady swallows everything Given a lady and lady swallows a "fly","spider","cat","dog","cow" then lady Dies'
# 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