PowerShell string contains
Prywatność & Pliki cookie
Ta strona używa plików cookie. Kontynuując, zgadzasz się na ich użycie. Dowiedz się więcej, w tym jak kontrolować pliki cookie.
Jak sprawdzić, czy ciąg PowerShell zawiera znak lub podłańcuch?
możesz pokusić się o wypróbowanie tego:
PS> $s = 'abcdefghijk’
PS> $s-Zawiera 'f’
False
ale –zawiera służy do pracy z zawartością tablic. Możesz to zrobić:
PS> ($s.ToCharArray()) -zawiera 'f’
True
domyślnie konwertujesz łańcuch 'f’ Na aby dokonać porównania. Twoje porównanie wygląda następująco
PS> ($s.ToCharArray()) -zawiera 'f’
True
To jest dobre dla pojedynczego znaku, ale jeśli chcesz przetestować podłańcuch
PS> $s-Zawiera 'def’
False
PS> ($s.ToCharArray()) -zawiera 'def’
false
to podejście nie zadziała.
należy użyć metody Indexof
PS>$s.Indexof(’f’)
5
PS>$s.Indexof(’def’)
3
zwracana wartość jest pozycją pierwszego znaku w podłańcuchu.
Możesz również przetestować tablicę znaków
PS> $a = 'g’,’j’,’a’
PS> $s.IndexOfAny($a)
0
ponownie otrzymasz pierwszy znak w tym przypadku 'a’
pamiętaj, że PowerShell jest oparty na.net, więc pierwszy indeks To 0
lets get some repetition into our target
PS> $s = $S * 3
PS> $s
abcdefghijkabcdefghijkabcdefghijk
masz również opcję wybór ostatniego wystąpienia podłańcucha
PS> $s.LastIndexOf (’f’)
27
PS> $s.lastindexofany($a)
31
ten ostatni jest ostatnim’ j ’ w łańcuchu – jest to ostatnie wystąpienie któregokolwiek ze znaków, które chcesz dopasować.
Jeśli nie ma dopasowania, zwracamy -1
PS> $s.IndexOf(’z’)
-1
PS> $s.LastIndexOf(’z’)
-1
Leave a Reply