re = /''Long?(?:'')?\.(?:'')? .*?(?P<Degrees>\d+).*?d.+?(?P<Minutes>\d+)′.*?(?P<Seconds>\d+)″.*?(?:'')?lat(?:'')?\.(?:'')?.*?(?P<Degrees>\d+).*?d.+?(?P<Minutes>\d+)′.*?(?P<Seconds>\d+)″.*?/m
str = '\'\'These are the coordinates\'\' :
\'\'Long. 17d. 6′. 8″. lat. 47d. 28′. 8″
\'\'Lon. \'\'36d. 70′. 80″. \'\'lat. 45d. 20′. 5″
\'\'Long. 17d. 6′. 8″.
lat. 47d. 28′. 8″'
# 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