Marco Centemeri wrote:
> 
> Hello All,

Hello,

> I'd like to know if a file name is like namefile.ext (only one dot in the name)
> or namefile.xxx.zzzzz.ext (more than one dot in the name).
> I tried with regex:
> 
> $file1='doctobepublish.new.pdf';
> 
> if ( $file1 =~ /\.{2,}/ ) { print "KO filename not properly formatted"; }
> else                      { print "OK filename is good"; }
> 
> This doesn't work and the match is true only if the two dots are consecutive.
> 
> doctobepublish.new.pdf =~ /\.{2,}/          doesn't match
> doctobepublish..new.pdf =~ /\.{2,}/                 match
> 
> My idea, probably wrong, is that regex process scan all the string and try
> to match all the possible so
> 
> doctobepublish.new.pdf =~ /\.{2,}/        should match
> anotherdoctobepublish.pdf =~ /\.{2,}/     should not match
> 
> May anybody help me to solve the problem and to understand better how regex
> works?
> I've already read perlquik and perlre but some points are still foggy!


Instead of a regular expression you can use the transliteration operator
to count characters.

$ perl -le'
my @files = qw/one two.txt three.four.txt/;

for my $file ( @files ) {
    if ( $file =~ tr/.// == 1 ) { print "Valid: $file" }
    else                        { print "NOT Valid: $file" }
    }
'
NOT Valid: one
Valid: two.txt
NOT Valid: three.four.txt



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to