Question
[Résolu] Boucle For
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 9 ans 7 mois #22146
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Boucle For
roninjin écrit:
roninjin écrit:
roninjin écrit:
[code:1]
$T=@(
'TAD',
'TBAP',
'TBA1',
'TBA2',
'TBAP ',
'TBA1 ',
'TBA 1 ',
'TBA 1',
' TBA 1',
' TBA1',
' TBA1 ',
'TBA21',
'TBA999',
'TBAzzz',
'TBAp99',
'TBAp9z',
'TBA1z2',
'1TDA',
'123A'
)
$T|
foreach {
Write-Warning \"Traite : '$_'\"
rv Matches -ea 'SilentlyContinue'
if ($_ -match '^(?<Trigramme>.{3})((?<Chiffres>\d*)|(?<Lettres>.*))$')
{
Write-Host \"Trigramme : '$($Matches.Trigramme)'\" -fore green
if ($Matches.Contains('Chiffres') )
{
Write-Host \"Chiffres : '$($Matches.Chiffres)'\"
}
elseif ($Matches.Contains('Lettres'))
{
Write-Host \"Lettres : '$($Matches.Lettres)'\"
$Matches.Lettres.Gettype()
}
else
{
#Write-Error 'Regex à revoir ?'
Write-Host 'Regex à revoir ?' -fore red
}
}
else
{
#Write-Error 'Cas inconnu'
Write-Host 'Cas inconnu' -fore red
}
Write-Host \"$('-'*40) `r`n\"
}
[/code:1]
Je ne suis pas certains de la pertinence de la regex pour le seul cas 'TAD' où 'Chiffres' et 'Lettrres' sont des chaînes vides, ce qui fait un test de plus.
Ensuite à toi de voir si le jeux de test est valide.
Non, 8 objets. Le premier est similaire à zéro dans ton contexte.ce qui fait 7 résultats
roninjin écrit:
Les automates sont justement là pour éviter ce type de pb(remonter les incohérences et/ou les éviter), mais une organisation est ce qu'elle estJ'ai meme pu voir des GDEP par exemple....
roninjin écrit:
Là il faut des regex :Mais je ne sais pas comment faire pour différencier chiffres & lettres.Une astuce ?
[code:1]
$T=@(
'TAD',
'TBAP',
'TBA1',
'TBA2',
'TBAP ',
'TBA1 ',
'TBA 1 ',
'TBA 1',
' TBA 1',
' TBA1',
' TBA1 ',
'TBA21',
'TBA999',
'TBAzzz',
'TBAp99',
'TBAp9z',
'TBA1z2',
'1TDA',
'123A'
)
$T|
foreach {
Write-Warning \"Traite : '$_'\"
rv Matches -ea 'SilentlyContinue'
if ($_ -match '^(?<Trigramme>.{3})((?<Chiffres>\d*)|(?<Lettres>.*))$')
{
Write-Host \"Trigramme : '$($Matches.Trigramme)'\" -fore green
if ($Matches.Contains('Chiffres') )
{
Write-Host \"Chiffres : '$($Matches.Chiffres)'\"
}
elseif ($Matches.Contains('Lettres'))
{
Write-Host \"Lettres : '$($Matches.Lettres)'\"
$Matches.Lettres.Gettype()
}
else
{
#Write-Error 'Regex à revoir ?'
Write-Host 'Regex à revoir ?' -fore red
}
}
else
{
#Write-Error 'Cas inconnu'
Write-Host 'Cas inconnu' -fore red
}
Write-Host \"$('-'*40) `r`n\"
}
[/code:1]
Je ne suis pas certains de la pertinence de la regex pour le seul cas 'TAD' où 'Chiffres' et 'Lettrres' sont des chaînes vides, ce qui fait un test de plus.
Ensuite à toi de voir si le jeux de test est valide.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Roninjin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 9 ans 6 mois #22246
par Roninjin
Réponse de Roninjin sur le sujet Re:Boucle For
Enfin de compte je n'ai pas fait comme ça.
1) J'ai listé ce qui existe
2) J'ai separer les lettres et les chiffres
3) Je garde le plus grand chiffre
4) je lui ajoute +1
J'ai bien mon trigramme.
Je mettrais le code plus tard je ne l'ai pas sous la main tout de suite.
Merci pour votre aide.
1) J'ai listé ce qui existe
2) J'ai separer les lettres et les chiffres
3) Je garde le plus grand chiffre
4) je lui ajoute +1
J'ai bien mon trigramme.
Je mettrais le code plus tard je ne l'ai pas sous la main tout de suite.
Merci pour votre aide.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.046 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Boucle For