Phrogz
8/18/2007 1:07:00 PM
On Aug 18, 6:03 am, Dipesh Batheja <dipesh_bath...@yahoo.com> 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.