[perl] vérifier variable numérique
Fermé
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
-
25 mars 2008 à 14:35
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 1 avril 2008 à 13:48
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 1 avril 2008 à 13:48
A voir également:
- [perl] vérifier variable numérique
- Verifier un lien - Guide
- Pavé numérique bloqué - Guide
- Clavier numérique bloqué - Guide
- Verifier compatibilite windows 11 - Guide
- Carte identité numérique - Accueil - Services publics
7 réponses
b0rice
Messages postés
9
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
1 avril 2008
1
1 avril 2008 à 00:44
1 avril 2008 à 00:44
Salut,
la négation dans une regexp en perl, c'est: $chaine !~ m/$re/;
Dans ton cas:
print 'Argument '.$ARGV[2].' non numérique' if ($ARGV[2] !~ m/^\d+$/);
Tu pouvais aussi faire:
print "Argument ".$ARGV[2];
if ( $ARGV[2] =~ m/^\d+$/ ) {
print " numérique\n";
}
else {
print " alphanumérique\n";
}
tout simplement ;)
la négation dans une regexp en perl, c'est: $chaine !~ m/$re/;
Dans ton cas:
print 'Argument '.$ARGV[2].' non numérique' if ($ARGV[2] !~ m/^\d+$/);
Tu pouvais aussi faire:
print "Argument ".$ARGV[2];
if ( $ARGV[2] =~ m/^\d+$/ ) {
print " numérique\n";
}
else {
print " alphanumérique\n";
}
tout simplement ;)
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
1 avril 2008 à 08:53
1 avril 2008 à 08:53
Salut.
Je ne comprend pas pourquoi
Je ne comprend pas pourquoi
if (!$ARGV[2] =~ m/^\d+$/){print "Argument '".$ARGV[2]."' non numérique.\n";}ne fonctionne pas. A cause de la priorité des opérateurs ? est-ce qu'un
if (!($ARGV[2] =~ m/^\d+$/)){print "Argument '".$ARGV[2]."' non numérique.\n";}fonctionnerai. Sinon, j'y comprends plus rien, le not sur un booléen doit toujours fonctionner normalement.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
1 avril 2008 à 10:11
1 avril 2008 à 10:11
Salut,
voici quelques tests
voici quelques tests
root@debian:~# perl -e 'print "non numérique\n" if ("aaa" !~ /^\d+$/)' non numérique root@debian:~# perl -e 'print "non numérique\n" if (!("aaa" =~ /^\d+$/))' non numérique root@debian:~# perl -e 'print "non numérique\n" unless ("aaa" =~ /^\d+$/)' non numérique
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
1 avril 2008 à 10:14
1 avril 2008 à 10:14
ou
perl -e '"aaa"=~/^\d+$/?"":print "non numérique\n"'
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
1 avril 2008 à 10:26
1 avril 2008 à 10:26
une autre possibilité de tester le non numérique c'est avec la classe de caractères complémenté \D qui cherche les caractères non numérique
je cherche tout simplement une correspondance non-numérique
root@debian:~# perl -e 'print "non numérique\n" if ("aaa" =~ /^\D+$/)' non numériquecomme ça je n'ai pas besoin de nier
je cherche tout simplement une correspondance non-numérique
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
1 avril 2008 à 10:34
1 avril 2008 à 10:34
Pour l'info
!~ ce n'est pas tout à fait une négation
cet opérateur veut plutôt dire de trouver la non-correspondance et pas de ne pas trouver la correspondance
!~ ce n'est pas tout à fait une négation
cet opérateur veut plutôt dire de trouver la non-correspondance et pas de ne pas trouver la correspondance
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
1 avril 2008 à 13:48
1 avril 2008 à 13:48
merci pour les précisions.