From: Phrogz Date: 2007-08-18T22:09:58+09:00 Subject: Re: Working with String On Aug 18, 6:03 am, Dipesh Batheja wrote: > Hi need some help with string manipulation. I have a string representing > full path of a file. Example "/foo/foo.gif". I need to just extract the > file name i.e "foo.gif" from this string. I also need to extract the > file type i.e "gif" from it in a separate string. Can anybody tell me > how to do it using regular expressions in Ruby. I know this can be done > using String.gsub, but i am too bad at reg expressions. And if someone > can point me to good source for learning reg expressions then it would > be really helpful. irb(main):001:0> s = "/foo/bar/whee.gif" => "/foo/bar/whee.gif" irb(main):002:0> s[ %r{[^/]+$} ] => "whee.gif" irb(main):003:0> s[ %r{[^.]+$} ] => "gif" Those expressions are: * One or more characters (as many as you can grab) that are not forward slash characters, followed by an end-of-line marker. * One or more characters (as many as you can grab) that are not period characters, followed by an end-of-line marker. To save someone else from having to point it out, $ is not the end of string, but just the end of a line. You could use \z to anchor truly to the end of the string, but when I know the input will be single line, I prefer $ for simplicity and portability.