> I am trying to extract ".jpg" (subtype of the file) from the string:
> c:\my_files\file.jpg
>
> I found the following pattern on the net:
> $file =~ s/.*[\/\\](.*)/$1/;
> which extracts the file name (file.jpg). I understood most of that pattern
> except what does the (.*) part does? And how can I tweak it so I only get
> the "jpg" part.
(.*) breaks down into 3 things:
the parens () say to capture whatever is matched by the regexp inside to $1
(or $2, etc)
the . says match any character
the * says to match 0 or more of the previous character
so, (.*) says to capture 0 or more of any character to $1.
You are using s///, so the contents of $file are being changed to the
contents of $1, this
may not be what you really want to do, if you're going to use the contents
of $file later.
read "perldoc perlre" for more information
If you want to capture ".jpg" use:
$file =~ s/.*[\/\\].*(\..*)/$1/;
If you just want "jpg" use:
$file =~ s/.*[\/\\].*\.(.*)/$1/;
/\/\ark
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]