re = /<trkpt\s(?=.*?(\blat\s*=\s*["']?\s*\b[\d.]+)).*?(\blon\s*=\s*["']?\s*\b[\d.]+)/
str = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<trkpt lat="53.188185" lon="7.216993"></trkpt>
<trkpt lat="53.184541" lon="7.217456"></trkpt>
<trkpt lat="53.188185" lon="7.216993"/> (Kurzschreibweise)
<trkpt lat=\'53.188185\' lon=\'7.216993\'></trkpt> (anderen Anführungszeichen)
<trkpt lat="53.188185" lon="7.216993"></trkpt>
<trkpt lon="7.216993" lat="53.188185"></trkpt>
<trkpt lat="53.188185" foo=\'"\' bar=\'"\' lon="7.216993"></trkpt>
<trkpt lat="53.188185" foo="" bar=">" lon="7.216993"></trkpt>'
# 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