From: ciapecki Date: 2008-03-20T19:34:55+09:00 Subject: Re: regexp conditional On 19 Mrz., 22:28, Robert Klemme wrote: > On 19.03.2008 11:21, ciapecki wrote: > > > > > On 19 Mrz., 10:09, Xavier Noria wrote: > > >> My interpretation of what you need is: > > >> input = '111|"aaaa" bbbbb|c' > > >> fields = input.split('|') > >> fields[1].gsub!('"', '""') > >> fields[1] = %Q{"#{fields[1]}"} > > >> output = fields.join('|') > > >> Depending on the input that may not be valid, for example if fields[1] > >> may contain a pipe. Anyway being a mal-formed input assumptions depend > >> on the actual data. > > > your solution works, and thanks for that, > > I am waiting though for a regexp solution, > > Even 2 regexps: > > irb(main):001:0> input = '111|"aaaa" bbbbb|c' > => "111|\"aaaa\" bbbbb|c" > irb(main):002:0> input.gsub(/[^|]+/) {|m| m.gsub!(/"/,'""') ? > '"'< => "111|\"\"\"aaaa\"\" bbbbb\"|c" > irb(main):003:0> puts input.gsub(/[^|]+/) {|m| m.gsub!(/"/,'""') ? > '"'< 111|"""aaaa"" bbbbb"|c > => nil > > Cheers > > robert this is just great, thanks robert for this chris