re = /,(?=(?:[^"]*"[^"]*")*[^"]*$)/m
str = '001,Legislative Branch,00,Legislative Branch,,"Receipts, Central fiscal operations",,803,Central fiscal operations,Mandatory,Nongrant,On-budget,-628,-390,-469,-413,-410,-722,-464,-522,-439,-360,-343,-427,-539,-307,-287,-132,-429,-385,-726,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
'
# 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