re = /(?<=") # A filename is after a double quote char
(?:[^"\/]+\/)+ # the path is one or more words separated with a slash
[^"\/]+ # The filename (not the path) can be anything but a double quote char and a slash
[.]\w+ # The extension cannot have space and have the form of .foobar
(?:") # A filename end with a double quote char/mix
str = 'example 1: soundSet = { name = "bus_modern", horn = "vehicle/truck_modern/horn.wav" }
example 2: id = "vehicle/bus/citaro/lod_0_w2.msh",
example 3: "vehicle/bus/berkhof_duvedec/berkhof_duvedec_lod_0_w2.msh", "vehicle/bus/berkhof_duvedec/berkhof_duvedec_lod_0_w3.msh",
id = "vehicle/train/BR 78_Body.grp"'
# 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