How about this as a regex:
($root,$file,ext)=$path=~/^([-_\w]+[\\/])+([^.]+)\.(.+)$/;
**** [EMAIL PROTECTED] <Carl Jolley>
**** All opinions are my own and not necessarily those of my employer ****
On Tue, 27 Mar 2001, Dirk Bremer wrote:
> I would like something without the overhead of a module.
>
> Dirk Bremer - Systems Programmer II - AMS Department - NISC
> 636-922-9158 ext. 652 fax 636-447-4471
>
> <mailto:[EMAIL PROTECTED]>
>
> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: "Dirk Bremer" <[EMAIL PROTECTED]>
> Cc: "perl-win32-users" <[EMAIL PROTECTED]>
> Sent: Tuesday, March 27, 2001 4:05 PM
> Subject: Re: Regex Help
>
>
> >
> >
> > Try using this:
> >
> > use File::Basename; # for picking apart file specs
> >
> > # filename, directory, extension
> > #
> > ($filena,$ldir,$ext) = fileparse($ARGV[0],'\..*');
> >
> >
> >
> >
> >
>
> > "Dirk Bremer" <[EMAIL PROTECTED]>
>
> > Sent by: To:
>"perl-win32-users"
> > [EMAIL PROTECTED]
><[EMAIL PROTECTED]>
> > eState.com cc:
>
> > Subject:
>Regex Help
> >
>
> > 03/27/01 05:03 PM
>
> > Please respond to "Dirk Bremer"
>
> >
>
> >
>
> >
> >
> > I want to build a regular expression that will separate a filename string
> > into the root name, filename, and extension name, placing
> > the results in $1, $2, $3. For example,
> > given the filename "d:\doc1_directories\journals\test\b11111_01_emfe.jrn",
> > I would like the regex to return 3 different items, i.e.:
> >
> > d:\doc1_directories\journals\test\
> > b11111_01_emfe
> > jrn
> >
> > If possible, I would like it to work with filename strings that utilize
> > either forward slashes "/" or backward slashes "\". So far,
> > I am able to get to the filename and extension using:
> >
> > my $f = 'd:\doc1_directories\journals\test\b11111_01_emfe.jrn';
> > $f =~ /([^\/\\]+)\.(.*)$/;
> >
> > which returns:
> >
> > $1 = b11111_01_emfe
> > $2 = jrn
> >
> > I have tried various combinations to get the root-part without success.
> > This regex should also be able to handle filename strings
> > that do not have the root part, i.e.
> >
> > b11111_01_emfe.jrn
> >
> > where $1 would be undefined. Your suggestions will be appreciated.
> >
> >
> > Dirk Bremer - Systems Programmer II - AMS Department - NISC
> > 636-922-9158 ext. 652 fax 636-447-4471
> >
> > <mailto:[EMAIL PROTECTED]>
> >
> >
> > _______________________________________________
> > Perl-Win32-Users mailing list
> > [EMAIL PROTECTED]
> > http://listserv.ActiveState.com/mailman/listinfo/perl-win32-users
> >
> >
> >
> >
> >
> >
>
> _______________________________________________
> Perl-Win32-Users mailing list
> [EMAIL PROTECTED]
> http://listserv.ActiveState.com/mailman/listinfo/perl-win32-users
>
_______________________________________________
Perl-Win32-Users mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/perl-win32-users