re = /^(?=.*\b(HDR(10)?)\b)(?=.*\b(DV|DoVi)\b)/m
str = '# Match
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos DoVi HDR HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos HDR DoVi HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos HDR10 DoVi HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos DoVi HDR10 HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos DV.HDR10 HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos HDR10.DV HEVC-RlsGrp
# Don\'t Match
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos DV HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos DoVi HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos HDR HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos HDR10 HEVC-RlsGrp'
# 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