Bonjour,
Je voulais savoir comment inclure une variable Powershell dans une regex ?
Merci d'avance.
Version imprimable
Bonjour,
Je voulais savoir comment inclure une variable Powershell dans une regex ?
Merci d'avance.
Bonjour,
Je complète ma question :
Je recherche un comparer une variable $User = "YUYAN1" ou $User = "DUPUIARNA1" à une regex :
$Name = "YU"
$FirstName = YAN"
OU
$Name = "DUPUIS"
$FirstName = "ARMAND"
Code:
1
2
3
4
5
6
7 # Comparaison entre le login de référence et le login if($User -match "^($Name{1,5})($FirstName{1,5})([0-9])$"){ Return 1 }else{ Return 0 }
Dans la regex j'aimerai avoir :
La variable $Name peu contenir 1 ou 5 carractères du début de la chaine +
La variable $FirstName peu contenir 1 ou 5 carractères du début de la chaine +
Un chiffre compris entre 0 et 9
Il y a peut être une autre méthode ?
Merci pour votre aide.
C'est l'inverse, sinon tu recherches à comparer une expression régulière.
Je pense que c'est la norme de nommage qu'il faut ici expliciter.
Et ta regex porte il me semble une incohérence, on ne peut savoir où commence la partie Name et ou finit la partie FirstName, elles sont ici liées.
Ceci me semble plus proche de ta norme, en tout cas du résultat que tu as énoncé :
Si tu recherches des occurrences de chaînes, ceci convient :Code:
1
2 $regex="^(.{1.10}[0-9]$"
Code:
1
2
3
4
5
6
7
8
9
10
11
12 $Name = "YU" $FirstName = "YAN" $User = "YUYAN1" $regex="^${Name}${FirstName}[0-9]$" # Comparaison entre le login de référence et le login if($User -match $regex){ Return 'Match' }else{ Return 'NotMatch' }
et dans
Code:$regex="^${Name}${FirstName}[0-9]$"
il y a moyen de lui dire que les variable Name et FirstName peuvent contenir les 1 ou 5 caractères du début de la chaine ?
Sinon, je l'ai fais différemment :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 # Nom : prélèvement carractère if($Name.Length -lt 5){ $Name = $Name.Substring(0,$Name.Length) }else{ $Name = $Name.Substring(0,5) } # Prénom : prélèvement carractère if($FirstName.Length -lt 5){ $FirstName = $FirstName.Substring(0,$FirstName.Length) }else{ $FirstName = $FirstName.Substring(0,4) } $Login = $Name+$FirstName # Comparaison entre le login de référence et le login if($User -match "^$Login([0-9])$"){ Return 1 }else{ Return 0 }
ok merci. Donc le regex n'est pas approprié pour ce que je souhaitais faire. Cela répond à ma question. Merci pour le temps passé.