Re: a regex question ..
- From: "John W. Krahn" <someone@xxxxxxxxxxx>
- Date: Sat, 30 Apr 2005 19:22:31 GMT
Geoff Cox wrote:
I am trying to rename a list of files by changing any single digits in the names to a zero and the digit, eg 7 -> 07.
Problem is there may be 2 instances in the name and the code below only works for the first single digit - how can I deal with both instances?
if ($name =~ /^(.*?)\-(\d{1})\D(.*?)$/ ) {
my $num = $2;
rename ($name, "new-" . $1 . "-" . "0" . $num . "-" . $3);
I have tried using tr/// but cannot see how to do it.
My guess would be that the above is not the best way to go about this!
( my $newname = "new-$name" ) =~ s/(?<!\d)(\d)(?!\d)/0$1/g;
if ( -e $newname ) {
warn "Cannot rename $name because $newname exists.\n";
}
else {
rename $name, $newname or warn "Cannot rename $name to $newname: $!";
}John -- use Perl; program fulfillment .
- Follow-Ups:
- Re: a regex question ..
- From: Geoff Cox
- Re: a regex question ..
- References:
- a regex question ..
- From: Geoff Cox
- a regex question ..
- Prev by Date: Re: a regex question ..
- Next by Date: Re: using CGI::Carp
- Previous by thread: Re: a regex question ..
- Next by thread: Re: a regex question ..
- Index(es):
Relevant Pages
|