Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1644 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Powershell] Résultat RegExp incorrect (bug?)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Powershell] Résultat RegExp incorrect (bug?)

n°2455270
sebastien4​444
Posté le 04-10-2023 à 10:15:15  profilanswer
 

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 :
 

Code :
  1. PS C:\Users\moi> "toto.titi@tutu.fr" -match "[a-z]+"
  2. True


 
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 ...
 

Code :
  1. PS C:\Users\moi> "toto.titi@tutu.fr" -match "[a-z]"
  2. True


 
Si quelqu'un a une idée sur la question :roll:
En vous remerciant par avance.

mood
Publicité
Posté le 04-10-2023 à 10:15:15  profilanswer
 

n°2455277
rat de com​bat
attention rongeur méchant!
Posté le 04-10-2023 à 11:43:35  profilanswer
 

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. :o

 

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.

Message cité 1 fois
Message édité par rat de combat le 04-10-2023 à 11:43:47

---------------
matos à vendre
n°2455280
kajoux
Posté le 04-10-2023 à 12:39:23  profilanswer
 

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. :o


Au moins un  :o  :o  
.+ -> un ou plus
.* -> zéro ou plus

n°2455291
rat de com​bat
attention rongeur méchant!
Posté le 04-10-2023 à 15:42:23  profilanswer
 

Tu as raison, ça arrive quand on poste en étant pressé... :jap:


---------------
matos à vendre
n°2455299
sebastien4​444
Posté le 04-10-2023 à 17:19:29  profilanswer
 

Ah mais oui !!! Merci de vos réponses qui m'ont débloqués l'esprit :D
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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Powershell] Résultat RegExp incorrect (bug?)

 

Sujets relatifs
visual studio : Résultat de chiffres décimaux fonctionne plusScript powershell programmes au démarrage
[Powershell]Manipuler des données dans une clé de registre[Powershell] Utilisation Variable boucle
Powershell Get-EXOMailboxscript PowerShell sur la copie des favoris Mozilla, Chrome
[powershell] psdrive / Tache Planifiée[powershell] Office365 Authentification morderne
Powershell : Lancement programme + notificationTransformer script Powershell en batch
Plus de sujets relatifs à : [Powershell] Résultat RegExp incorrect (bug?)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR