PowerShell-Zeichenfolge enthält
Datenschutz & Cookies
Diese Seite verwendet Cookies. Indem Sie fortfahren, stimmen Sie deren Verwendung zu. Erfahren Sie mehr, einschließlich der Kontrolle von Cookies.
Wie können Sie überprüfen, ob eine PowerShell-Zeichenfolge ein Zeichen oder eine Teilzeichenfolge enthält?
Sie könnten versucht sein, dies zu versuchen:
PS> $s = ‚abcdefghd‘
PS> $s -contains ‚f‘
False
But –contains dient zum Arbeiten mit dem Inhalt von Arrays. Sie könnten also Folgendes tun:
PS> ($s.toCharArray()) -contains ‚f‘
True
Sie konvertieren implizit die Zeichenfolge ‚f‘, um den Vergleich durchzuführen. Ihr Vergleich ist eigentlich dieser
PS> ($s.toCharArray()) -enthält ‚f‘
True
Das ist in Ordnung für ein einzelnes Zeichen, aber wenn Sie eine Teilzeichenfolge testen möchten
PS> $s -enthält ‚def‘
False
PS> ($s.toCharArray()) -enthält ‚def‘
False
Dieser Ansatz funktioniert nicht.
Sie müssen die Indexof-Methode verwenden
PS> $s.Indexof(‚f‘)
5
PS> $s.Indexof(‚def‘)
3
Der zurückgegebene Wert ist die Position des ERSTEN Zeichens in der Teilzeichenfolge.
Sie können auch ein Array von Zeichen testen
PS> $a = ‚g‘,’j‘,’a‘
PS> $s.IndexOfAny($a)
0
Wieder erhalten Sie das ERSTE Zeichen in diesem Fall das ‚a‘
Denken Sie daran, dass PowerShell .NET basiert, also ist der erste Index 0
Lassen Sie uns einige Wiederholungen in unser Ziel bekommen
PS> $s = $s * 3
PS> $s
abcdefghijkabcdefghijkabcdefghijk
Sie haben auch die Möglichkeit, das LETZTE Vorkommen der Teilzeichenfolge
PS> $s.lastIndexOf(‚f‘)
27
PS> $s.LastIndexOfAny($a)
31
Dieses letzte ist das letzte ‚j‘ in der Zeichenfolge – es ist das letzte Vorkommen eines der Zeichen, mit denen Sie übereinstimmen möchten.
Wenn es keine Übereinstimmung gibt, erhalten Sie -1 zurückgegeben
PS> $s.indexOf(‚z‘)
-1
PS> $s.lastIndexOf(‚z‘)
-1
Leave a Reply