re = /((^|\ )((\d{1,3})(.(\d{3}))+(\,\d{2}?€)))|(^|\ )((\d+(\,\d{2})?€)) /m
str = '3,56€ 1000.000,00€ 3,568€ 1000.00,00€ 0.001.200
0,56 0,56€ 0,56 € 3€ 167.555.178,00€ 100.005.000,00€ 167.555,00€ 1.067,00€ 000.555
567.555,00€ 167.555,00€ 167.555,00€
100000,00€ 100000€
100.000.000,00€ 100.000000,00€'
# 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