From: Robert Klemme Date: 2010-04-10T20:45:07+09:00 Subject: Re: return string within seperators only On 04/09/2010 10:26 PM, Caleb Clausen wrote: > On 4/9/10, Jesse B. wrote: >> trying to do something like this >> >> some text >> some more text /what I want/ some more text >> some more text >> >> returns >> >> "what I want" >> >> how would I write this to get just what is between the first and second >> forward slashes? > > irb(main):001:0> s=< irb(main):002:0" some text > irb(main):003:0" some more text /what I want/ some more text > irb(main):004:0" some more text > irb(main):005:0" END > => "some text\nsome more text /what I want/ some more text\nsome more text\n" > irb(main):006:0> s[%r{/.*?/}] > => "/what I want/" With a capturing group you can even get exactly the text wanted: irb(main):001:0> s = "some /text that I want/ not" => "some /text that I want/ not" irb(main):002:0> s[%r{/(.*?)/}, 1] => "text that I want" Or, if you also want to remove whitespace at the edges: irb(main):004:0> s = "some / text that I want trimmed / not" => "some / text that I want trimmed / not" irb(main):005:0> s[%r{/(.*?)/}, 1] => " text that I want trimmed " irb(main):006:0> s[%r{/\s*(.*?)\s*/}, 1] => "text that I want trimmed" Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/