けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :18311 ] the message: "[ruby-list:18311] Re: [book]
csv_split2 ", on Nov/03 01:04(JST) Koretsugu Daigoro writes:

>これつぐです。
>
>> それにこのプログラムは元と違いすぎて採用しづらいなぁ... 
>> 
>> # 説明部分を大幅に変更する必要が出てしまいますので(^^;;;
>
>すみません。
>そこまで意識してませんでした。

基本的な考え方は同じだから対応できないでもないんですけどね.

>単に手元に似たようなのがあったので出してみただけなのです。
>ちなみにオリジナルはこれです。
>
>str.scan(/(?:^|,)("(?:[^"]|"")*"|[^,]*)/).flatten

これだと, 

'goo,"bar",baz'.scan(/(?:^|,)("(?:[^"]|"")*"|[^,]*)/).flatten
=> ["goo", "\"bar\"", "baz"]

ってなってしまいますね.

scan(/(?:^|,)(?:"((?:[^"]|"")*)"|([^,]*))/).collect{|m1,m2| m2 || m1.gsub(/""/, '"')}

ですかね(^^;;;

# このメイルスレッドはなかなかおもしろい内容がありますが, 本には反映し切
# れそうもないなあ...

__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju / rational.com <<---