Extrahieren Sie eine PowerShell-Teilzeichenfolge aus einer Zeichenfolge

John Wachira 21 Juni 2023
  1. Extrahieren Sie einen PowerShell-Substring mit der Methode Substring()
  2. Extrahieren Sie eine PowerShell-Teilzeichenfolge links von einer Zeichenfolge
  3. Extrahieren Sie eine PowerShell-Teilzeichenfolge vor und nach einem bestimmten Zeichen
  4. Extrahieren Sie eine PowerShell-Teilzeichenfolge zwischen zwei Zeichen
Extrahieren Sie eine PowerShell-Teilzeichenfolge aus einer Zeichenfolge

Dieser Artikel veranschaulicht, wie wir eine Teilzeichenfolge aus einer Zeichenfolge in PowerShell extrahieren können. Ein Teilstring ist einfach ein Teil eines Strings.

Wir können einen Teilstring in PowerShell mit den Methoden Substring() und split() erstellen. Wenn wir zum Beispiel den String Delftstack.com haben, ist Delftstack ein Teilstring und com ein anderer.

Dieser Artikel behandelt die Methode Substring().

Extrahieren Sie einen PowerShell-Substring mit der Methode Substring()

Schauen wir uns zunächst die Syntax der Methode Substring() an.

string.Substring(int startIndex, int length)

Das int in der Syntax kennzeichnet startIndex und length als Indexzahlen. Der startIndex gibt das erste Zeichen des Teilstrings an, den wir extrahieren möchten, während length die Anzahl der Zeichen ist, die wir aus einem String extrahieren möchten.

Wir verwenden die Methode IndexOf, um den startIndex und die length eines Teilstrings zu bestimmen.

Den startIndex ermitteln wir, indem wir zum resultierenden Wert des Teilstrings IndexOf eine 1 addieren. Schauen wir uns ein Beispiel an.

Angenommen, ned.delftstack.com ist unser String, was ist die Indexposition des ersten Buchstabens n in unserem String? Wir können die Position bestimmen, indem wir den folgenden Befehl ausführen:

"ned.delftstack.com".IndexOf('n')

Das Ergebnis ist 0. Denn die Methode IndexOf sucht von links nach rechts nach dem ersten Vorkommen eines Strings und beginnt immer bei 0.

Wenn wir also einen Teilstring beginnend mit dem Buchstaben n extrahieren möchten, ist unser startIndex 0.

Wir können auch LastIndexOf verwenden, um den Ort des letzten Vorkommens eines Strings zu finden. Zum Beispiel wäre das letzte Vorkommen des Buchstabens d:

"ned.delftstack.com".LastIndexOf('d')

Mit diesen grundlegenden Informationen können Sie Zeichenfolgen in PowerShell bearbeiten.

Lassen Sie uns die obigen Informationen anwenden.

Angenommen, wir möchten den Teilstring ned aus ned.delftstack.com extrahieren. Wie würden wir vorgehen?

Wir beginnen damit, unseren String in einer Variablen namens ourstrng zu speichern.

$ourstrng = "ned.delftstack.com"

Aus der Syntax der Substring()-Methode lautet unser Befehl:

$ourstrng.Substring(0,3)

Dies gibt ned zurück, da unser startIndex 0 und length 3 Zeichen ist. Was ist, wenn unser Ziel darin besteht, delftstack aus unserem String zu extrahieren?

Der erste Schritt besteht darin, den startIndex für unseren Teilstring zu ermitteln. In diesem Fall verwenden wir den ersten Punkt, der das Trennzeichen ist.

$ourstrng.IndexOf(".")

Das Ergebnis ist 3. Aber wenn Sie sich erinnern können, fügen wir dem Ergebnis für das erste Zeichen der Zeichenfolge eine 1 hinzu; daher wird unser startIndex 4 sein.

Die Länge ist die Anzahl der Zeichen, die der Teilstring haben soll; wir zählen ab 1. Der Teilstring delftstack hat 10 Zeichen.

$ourstrng.Substring(4,10)

Dies gibt delftstack zurück.

Extrahieren Sie eine PowerShell-Teilzeichenfolge vor und nach einem bestimmten Zeichen

Angenommen, wir möchten sowohl ned als auch delftstack.com aus unserem String extrahieren. Wie würden wir vorgehen?

Zuerst müssen wir die Position unseres Trennzeichens bestimmen, das erste .. Der folgende Befehl speichert das Trennzeichen in einer Variablen namens $sepchar.

$sepchar = $ourstrng.IndexOf(".")

Um unsere Teilzeichenfolgen zu extrahieren, führen wir den folgenden Befehl aus:

$ourstrng.Substring(0,$sepchar)

Dadurch wird der erste Teil extrahiert, der ned ist. Für die andere Teilzeichenfolge führen wir Folgendes aus:

$ourstrng.Substring($sepchar+1)

Dies gibt deftstack.com zurück.

Extrahieren Sie eine PowerShell-Teilzeichenfolge zwischen zwei Zeichen

Wenn unser String ned.delftstack.com ist, ist unser Teilstring delftstack, da er zwischen unserer ersten und zweiten Periode liegt. Ein solches Skript erfordert drei Befehle.

Der erste Befehl ermittelt die Position unseres ersten Punktes (.) und speichert sie in der Variablen firstsep.

$firstsep = $ourstrng.IndexOf(".")

Der zweite Befehl bestimmt die zweite Stelle unseres Punktes mit der Methode LastIndexOf und speichert sie in der Variablen lastrep.

$lastrep = $ourstrng.LastIndexOf(".")

Der letzte Befehl extrahiert den Teilstring delftstack aus unserem String.

$ourstrng.Substring($firstsep+1,$lastrep-4)

Zusammenfassend lässt sich sagen, dass Sie eine Teilzeichenfolge in einer Zeichenfolge vor, nach und zwischen PowerShell-Trennzeichen extrahieren können. Die Methode Substring() ist praktisch, wie wir oben gesehen haben.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Verwandter Artikel - PowerShell String