Résultat RegExp incorrect (bug?) [Powershell] - Shell/Batch - Programmation
Marsh Posté le 04-10-2023 à 11:43:35
Attention je ne connais pas Powershell, les RegExp que je fais c'est en syntaxe Perl (PCRE)!
sebastien4444 a écrit : Cette RegExp ne devrait matcher qu'avec des mots qui contiennent des caractères de a à z |
Non, elle va "matcher" n'importe quelle chaîne qui contient au moins deux caractères a-z à la suite.
Si tu veux tester toute la chaîne faut prendre un truc genre ^[a-z]+$, ça ça va prendre uniquement des chaînes entièrement composées de lettres.
Marsh Posté le 04-10-2023 à 12:39:23
rat de combat a écrit : Non, elle va "matcher" n'importe quelle chaîne qui contient au moins deux caractères a-z à la suite. |
Au moins un
.+ -> un ou plus
.* -> zéro ou plus
Marsh Posté le 04-10-2023 à 15:42:23
Tu as raison, ça arrive quand on poste en étant pressé...
Marsh Posté le 04-10-2023 à 17:19:29
Ah mais oui !!! Merci de vos réponses qui m'ont débloqués l'esprit
En fait, comme les exercices d'entrainement que j'ai fait sur les RegExp avait pour but de matcher entièrement une chaîne de caractère, j'ai complètement oublié que dans la pratique, matcher une partie de la chaîne suffit à renvoyer Vrai.
Marsh Posté le 04-10-2023 à 10:15:15
Bonjour,
Je voulais me faire une petite fonction qui prenne un string en paramètre et test si le format ressemble à un simple mot ou une adresse mail (= SamAccountName et UserPrinciapName dans mon entreprise).
Pour ce faire, je voulais utiliser des RegExp et lors de mes tests qui ne me renvoyaient pas le résultat attendu, je me suis aperçu d'un comportement bizarre dont voici un exemple :
Cette RegExp ne devrait matcher qu'avec des mots qui contiennent des caractères de a à z (donc pas de "@" ou de "." ) et pourtant le test me renvoi True
J'ai essayé avec -cmatch dans le doute : idem.
J'ai fait le test sur 2 machines différentes (un windows server et un win11) : idem
J'ai essayé sous Powershell et sous Powershell ISE : idem
Pire, j'ai essayé une RegExp qui test seulement un caractère et ...
Si quelqu'un a une idée sur la question
En vous remerciant par avance.