re = /^(\d+)\s(\w+)\s([a-zA-Zâéàè()\- ]+)\s(\d{4})\s@\s([\d,.]+)\s?([a-zA-Zâéàè ()]*)$/m
str = '1 owc12 La Fleur (St-Emilion) 2000 @ 23
1 owc6 Cheval Blanc 1970 @ 295 (Rhabillage Château)
1 owc12 Cheval Blanc 1970 @ 285
1 owc12 Cheval Blanc 1975 @ 350 (Rhabillage Château)
1 owc6 magnum Cheval Blanc 1973 @ 520
1 owc6 magnum Cheval Blanc 1978 @ 560
1 owc12 Léoville Las Cases 1992 @ 92
1 owc12 Léoville Barton 1984 @ 53
1 owc12 Beychevelle 1992 @ 62
1 owc12 Giscours 1994 @ 46
1 owc12 La Conseillante 1988 @ 107
1 owc6 Cheval Blanc 1970 @ 295 (Rhabillage Château)
1 owc12 Cheval Blanc 1970 @ 285
1 owc12 Cheval Blanc 1975 @ 350 (Rhabillage Château)
1 owc6 magnum Cheval Blanc 1973 @ 520
1 owc6 magnum Cheval Blanc 1978 @ 560
'
# 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