Ruby 初心者スレッド Part 34
■ このスレッドは過去ログ倉庫に格納されています
0025デフォルトの名無しさん
2010/01/28(木) 18:08:58str = 'first,second"a,b,c"second,third'
require 'strscan'
COMMA = /\A,\Z/
QUOTE = /".*?"/
SCAN_REG = /#{QUOTE}|./
def parse(str)
result = [""]
scanner = StringScanner.new(str)
while match = scanner.scan(SCAN_REG)
case match
when COMMA; result << ""
else ; result.last << match
end
end
result
end
p parse(str) #=> ["first", "second\"a,b,c\"second", "third"]
■ このスレッドは過去ログ倉庫に格納されています