[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Working with String

Dipesh Batheja

8/18/2007 12:03:00 PM

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.

Thanks
--
Posted via http://www.ruby-....

4 Answers

Young Moon

8/18/2007 12:59:00 PM

0

Hi,

irb(main):035:0> "/foo/foo.gif".split("/")[-1]
=> "foo.gif"
irb(main):038:0> "/foo/foo.gif".split(".")[-1]
=> "gif"

On Aug 18, 5:03 pm, 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.
>
> Thanks
> --
> Posted viahttp://www.ruby-....


Phrogz

8/18/2007 1:07:00 PM

0

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.

Dipesh Batheja

8/18/2007 1:33:00 PM

0

Thanks Gavin that really helped.
--
Posted via http://www.ruby-....

Olivier

8/18/2007 1:44:00 PM

0

Le samedi 18 août 2007 14:03, Dipesh Batheja a écrit :
> 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.
>
> Thanks

You can also use a dedicated lib, for manipulating filenames : pathname

require 'pathname'

p = Pathname.new "/foo/foo.gif"
puts p.basename # => foo.gif
puts p.extname # => ".gif"

--
Olivier Renaud