Question
Expressions Régulière
- buissonneau
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 9 ans 11 mois #17285
par buissonneau
Francis
Réponse de buissonneau sur le sujet Re:Expressions Régulière
ah ok, j'avais pas compris.
Je n'ai pas de jeux de test comme tu le décris, je pensais que le fait de mettre :
[code:1]$verifmail = $RegMail.Matches($mail)[/code:1]
ferait cela.
Je souhaite valider les adresses qui sont correctement écrites :
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
et invalider celle qui sont :
xxx.xxxx.xxx.xx
xxxx..xxxx@xxxx.xxx
bref toutes celles qui sont pas construites comme les deux du haut.
J'ai vu qu'avec ma regex j'obtiens bien une réponse par rapport à mes adresses qui sont bien construite, et lorsque ce n'est pas le cas il met rien.
Par contre je vois pas comment exploiter cette réponse et sur quelle base m'appuyer pour valider cette adresse ou la rejeter.
Merci.
Francis<br><br>Message édité par: xaviar, à: 4/04/14 14:27
Je n'ai pas de jeux de test comme tu le décris, je pensais que le fait de mettre :
[code:1]$verifmail = $RegMail.Matches($mail)[/code:1]
ferait cela.
Je souhaite valider les adresses qui sont correctement écrites :
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
et invalider celle qui sont :
xxx.xxxx.xxx.xx
xxxx..xxxx@xxxx.xxx
bref toutes celles qui sont pas construites comme les deux du haut.
J'ai vu qu'avec ma regex j'obtiens bien une réponse par rapport à mes adresses qui sont bien construite, et lorsque ce n'est pas le cas il met rien.
Par contre je vois pas comment exploiter cette réponse et sur quelle base m'appuyer pour valider cette adresse ou la rejeter.
Merci.
Francis<br><br>Message édité par: xaviar, à: 4/04/14 14:27
Francis
Connexion ou Créer un compte pour participer à la conversation.
- buissonneau
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 9 ans 11 mois #17286
par buissonneau
Francis
Réponse de buissonneau sur le sujet Re:Expressions Régulière
je viens de me rendre compte que j'ai pas mis mon message dans la partie entraide pour débutant >o<'
Francis
Connexion ou Créer un compte pour participer à la conversation.
- buissonneau
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 9 ans 11 mois #17288
par buissonneau
Francis
Réponse de buissonneau sur le sujet Re:Expressions Régulière
j'ai testé cela :
[code:1][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');
$Name = Read-Host \"Entrez un nom\"
$Prenom = Read-Host \"Entrez un prénom\"
$Id = Read-Host \"Entrez un Id\"
$mail = read-host \"entrez une adresse mail\"
$RegMail = [regex]\"[a-zA-Z0-9_%+-]+\.?[a-zA-Z0-9_%+-]+@[a-zA-Z0-9-]+\.?[a-zA-Z]{2,4}\"
[bool]$verif = $false
$verifmail = $RegMail.Matches($mail)
if (($Name -eq $null) -or ($Id -eq $null) -or ($Prenom -eq $null))
{
$verif = $true
[System.Windows.Forms.MessageBox]::«»Show('Au moins un champs est vide, merci de le renseigner','Your_Desired_Title')
}
else
{
$verif=$false
[System.Windows.Forms.MessageBox]::«»Show('GG','Your_Desired_Title')
}
if (($verifmail).count -eq \"0\"«»)
{
[System.Windows.Forms.MessageBox]::«»Show('BAD MAIL','Your_Desired_Title')
}
else
{
[System.Windows.Forms.MessageBox]::«»Show('GOOD MAIL ','Your_Desired_Title')
}
[/code:1]
alors la cela fonctionne si je met un xxxx.xxxx.xxx j'ai bien une erreur, par contre si je met xxxx@xxxx j'ai pas d'erreur.
Francis
Une erreur dans ma Regex?
[code:1][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');
$Name = Read-Host \"Entrez un nom\"
$Prenom = Read-Host \"Entrez un prénom\"
$Id = Read-Host \"Entrez un Id\"
$mail = read-host \"entrez une adresse mail\"
$RegMail = [regex]\"[a-zA-Z0-9_%+-]+\.?[a-zA-Z0-9_%+-]+@[a-zA-Z0-9-]+\.?[a-zA-Z]{2,4}\"
[bool]$verif = $false
$verifmail = $RegMail.Matches($mail)
if (($Name -eq $null) -or ($Id -eq $null) -or ($Prenom -eq $null))
{
$verif = $true
[System.Windows.Forms.MessageBox]::«»Show('Au moins un champs est vide, merci de le renseigner','Your_Desired_Title')
}
else
{
$verif=$false
[System.Windows.Forms.MessageBox]::«»Show('GG','Your_Desired_Title')
}
if (($verifmail).count -eq \"0\"«»)
{
[System.Windows.Forms.MessageBox]::«»Show('BAD MAIL','Your_Desired_Title')
}
else
{
[System.Windows.Forms.MessageBox]::«»Show('GOOD MAIL ','Your_Desired_Title')
}
[/code:1]
alors la cela fonctionne si je met un xxxx.xxxx.xxx j'ai bien une erreur, par contre si je met xxxx@xxxx j'ai pas d'erreur.
Francis
Une erreur dans ma Regex?
Francis
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 9 ans 11 mois #17290
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Expressions Régulière
xaviar écrit:
[code:1]
$regex=\"[a-zA-Z0-9_%+-]+\.?[a-zA-Z0-9_%+-]+@[a-zA-Z0-9-]+\.?[a-zA-Z]{2,4}\"
$JeuxDeTest=@(
#valide
'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.',
'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.',
#invalide
'xxx.xxxx.xxx.xx',
'xxxx..xxxx@xxxx.xxx'
)
$JeuxDeTest|
Foreach {
\"$_ -> $($_ -match $regex)\"
}
# Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. -> True
# Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. -> True
# xxx.xxxx.xxx.xx -> False
# xxxx..xxxx@xxxx.xxx -> True
[/code:1]
Probablement:Une erreur dans ma Regex?
[code:1]
$regex=\"[a-zA-Z0-9_%+-]+\.?[a-zA-Z0-9_%+-]+@[a-zA-Z0-9-]+\.?[a-zA-Z]{2,4}\"
$JeuxDeTest=@(
#valide
'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.',
'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.',
#invalide
'xxx.xxxx.xxx.xx',
'xxxx..xxxx@xxxx.xxx'
)
$JeuxDeTest|
Foreach {
\"$_ -> $($_ -match $regex)\"
}
# Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. -> True
# Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. -> True
# xxx.xxxx.xxx.xx -> False
# xxxx..xxxx@xxxx.xxx -> True
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- buissonneau
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 9 ans 11 mois #17291
par buissonneau
Francis
Réponse de buissonneau sur le sujet Re:Expressions Régulière
Laurent, j'arrive pas à comprendre le JeuxDeTest.
Par exemple, si je veux valider tout adresse composer de
Nom.Prénom@site.fr (com ou autre) et NomPrénom@site.fr (com ou autre) faut que je les mettent dans #valide?
Mais donc je comparerais des adresses saisies par des gens qui peuvent être Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. ou Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser..
Je pensais que c'était le fait de faire le
[code:1]$verifmail = $RegMail.Matches($mail)[/code:1]
bon sauf que ma regex a l'air d'autoriser les bob@free
et du coup j'ai remarqué que lorsque l'adresse est validée le $verifmail.count = 1 et quand elle est pas valide =0
J'ai récupéré la regex d'un cours de formation powershell que j'avais eu et effectivement il laisse passer l'adresse bob@free
Je vais plancher sur ce que tu m'a écris.
Par exemple, si je veux valider tout adresse composer de
Nom.Prénom@site.fr (com ou autre) et NomPrénom@site.fr (com ou autre) faut que je les mettent dans #valide?
Mais donc je comparerais des adresses saisies par des gens qui peuvent être Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. ou Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser..
Je pensais que c'était le fait de faire le
[code:1]$verifmail = $RegMail.Matches($mail)[/code:1]
bon sauf que ma regex a l'air d'autoriser les bob@free
et du coup j'ai remarqué que lorsque l'adresse est validée le $verifmail.count = 1 et quand elle est pas valide =0
J'ai récupéré la regex d'un cours de formation powershell que j'avais eu et effectivement il laisse passer l'adresse bob@free
Je vais plancher sur ce que tu m'a écris.
Francis
Connexion ou Créer un compte pour participer à la conversation.
- buissonneau
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 9 ans 11 mois #17292
par buissonneau
Francis
Réponse de buissonneau sur le sujet Re:Expressions Régulière
ok, je viens de comprendre le but du JeuxDeTest.
C'est pour vérifier la fabrication de ma regex?
et du coup elle est pas bonne.
[code:1]
$regex=\"[a-zA-Z0-9_%+-]+\.?[a-zA-Z0-9_%+-]+@[a-zA-Z0-9-]+\.?[a-zA-Z]{2,4}\"
$JeuxDeTest=@(
#valide
'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.',
'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.',
#invalide
'bob.free.fr',
'bob..smith@free.fr'
'bob.smith@free'
)
$JeuxDeTest|
Foreach {
\"$_ -> $($_ -match $regex)\"
}
#bob@free.fr -> True
#bob.smith@free.fr -> True
#bob.free.fr -> False
#bob..smith@free.fr -> True
#bob.smith@free -> True
[/code:1]
C'est pour vérifier la fabrication de ma regex?
et du coup elle est pas bonne.
[code:1]
$regex=\"[a-zA-Z0-9_%+-]+\.?[a-zA-Z0-9_%+-]+@[a-zA-Z0-9-]+\.?[a-zA-Z]{2,4}\"
$JeuxDeTest=@(
#valide
'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.',
'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.',
#invalide
'bob.free.fr',
'bob..smith@free.fr'
'bob.smith@free'
)
$JeuxDeTest|
Foreach {
\"$_ -> $($_ -match $regex)\"
}
#bob@free.fr -> True
#bob.smith@free.fr -> True
#bob.free.fr -> False
#bob..smith@free.fr -> True
#bob.smith@free -> True
[/code:1]
Francis
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.091 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Discussions générales
- Expressions Régulière