From: Axel Etzold Date: 2008-01-25T01:30:10+09:00 Subject: Re: strings that contain quote marks -------- Original-Nachricht -------- > Datum: Fri, 25 Jan 2008 00:59:58 +0900 > Von: "jonsteenbergen@gmail.com" > An: ruby-talk@ruby-lang.org > Betreff: strings that contain quote marks > Sorry if this post is a duplicate, I'm having problems with my posts > posting. > > Hello, > I've searched through the Ruby documentation to try and figure this > out - no luck at all, also searched google to see if anyone had > written about this. Any help or direction on where to find the answer > would be much appreciated! > > This is in a rails project, but I think the answer lies in Ruby's > string methods. > I've got an object that has a list of materials attached to it, so in > my model I grab all the materials and convert them into a string - > like this: > > self.materials.collect{ |x| x.material.strip.humanize.split.map{ |w| > w.capitalize}.join(' ')}.join(', ') > > So I break apart each material by word, capitalize it, put that > material string back together and then join all the materials by > commas. > > This works great, except that some of the materials are books with the > titles surrounded by quotes - > Book "the Snowy Day," By Ezra Jack Keats > > So my code above works, except for the first letter after the initial > " > Is there a method to deal with this, so that it correctly capitalizes > the first letter after the " if there is a quote? I've tried a lot of > different things, but nothing is giving me the results I need. > > Anyone have any ideas? > Thanks! Dear Jon, try this: text='Book "the Snowy Day," By Ezra Jack Keats' while /\"([a-z])/.match(text) ref=/\"([a-z])/.match(text) text.gsub!(ref[0],'"' + ref[1].capitalize) end p text Best regards, Axel -- Psssst! Schon vom neuen GMX MultiMessenger geh�rt? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger