La chaîne PowerShell contient
Confidentialité&Cookies
Ce site utilise des cookies. En continuant, vous acceptez leur utilisation. En savoir plus, y compris comment contrôler les cookies.
Comment pouvez-vous vérifier si une chaîne PowerShell contient un caractère ou une sous-chaîne?
Vous pourriez être tenté d’essayer ceci:
PS > $s= ‘abcdefghijk’
PS >Falses-contient ‘f’
False
Mais – contient est pour travailler avec le contenu des tableaux. Vous pouvez donc faire ceci:
PS >(ss.ToCharArray()) – contient ‘f’
True
Vous convertissez implicitement la chaîne ‘f’ en pour faire la comparaison. Votre comparaison est en fait la suivante
PS >(ss.ToCharArray()) – contient ’f’
True
C’est bien pour un seul caractère mais si vous voulez tester une sous-chaîne
PS >ss – contient ‘def’
False
PS >(ss.ToCharArray()) – contient ‘def’
False
Cette approche ne fonctionnera pas.
Vous devez utiliser la méthode Indexof
PS > $s.Indexof(‘f’)
5
PS >ss.Indexof(‘def’)
3
La valeur renvoyée est la position du PREMIER caractère dans la sous-chaîne.
Vous pouvez également tester un tableau de caractères
PS:> $a = ‘g’,’j’,’a’
PS:> $s.IndexOfAny($a)
0
de Nouveau, vous obtenez le PREMIER caractère dans ce cas, le ‘a’
Souvenez-vous de PowerShell .NET, de sorte que le premier indice est égal à 0
Permet de se faire une certaine répétition dans notre cible
PS:> $s = $s * 3
PS:> $s
abcdefghijkabcdefghijkabcdefghijk
Vous avez également la possibilité de choisir la DERNIÈRE occurrence de la sous-chaîne
PS:> $s.LastIndexOf(’f’)
27
PS >ss. LastIndexOfAny(aa)
31
Ce dernier est le dernier « j » de la chaîne – c’est la dernière occurrence de l’un des caractères que vous vouliez faire correspondre.
S’il n’y a pas de correspondance, vous obtenez -1 renvoyé
PS > $s.IndexOf(‘z’)
-1
PS >ss.LastIndexOf(‘z’)
-1
Leave a Reply