Extrahieren Sie Texte mit Regex in PowerShell
Manchmal müssen wir bestimmten Text aus einem großen Text mit einem bestimmten Muster extrahieren. Angenommen, Sie haben einen Text wie den folgenden und möchten die E-Mails aus diesem Text extrahieren.
Alen <alen@gmail.com>, Stefen <stefen@gmail.com>, Walker <walker@gmail.com>
Bitte beachten Sie, dass alle E-Mails von den Symbolen <
und >
umschlossen sind.
Der beste Weg, die Aufgabe zu erledigen, ist die Verwendung des beliebtesten PowerShell-Schlüsselworts regex
. Mit diesem Schlüsselwort können Sie ein bestimmtes Muster angeben, das beim Ausführen der Aufgabe übereinstimmen muss.
Dieser Artikel zeigt, wie man mit dem Schlüsselwort regex
einen bestimmten Teilstring aus einem String extrahiert. Außerdem werden wir notwendige Beispiele und Erklärungen sehen, um das Thema einfacher zu machen.
Extrahieren Sie Texte mit regex
in PowerShell
In unserem unten geteilten Beispiel extrahieren wir alle E-Mails aus der Zeichenfolge. Der Code für unser Beispiel lautet wie folgt:
$MyText = 'Alen <alen@gmail.com>, Stefen <stefen@gmail.com>, Walker <walker@gmail.com>'
$MyPattern = '(?<=\<).+?(?=\>)'
[regex]::Matches($MyText, $MyPattern).Value
In der ersten Zeile des obigen Beispiels haben wir zuerst eine Zeichenfolgenvariable deklariert, die die angegebene Zeichenfolge enthält. Danach haben wir ein bestimmtes Muster bereitgestellt, das abgeglichen werden muss.
Das Muster wird im Folgenden kurz beschrieben:
(?<=\<)
– Es ist das positive Look-Behind, das nur passt, wenn das angegebene Zeichen vor dem Text steht. Es enthält jedoch nicht die Charaktere innerhalb der Übereinstimmung.+?
- Eroberungen (+
) eines oder mehrerer Zeichen. Es sind aber nur wenige Zeichen möglich.(?=\>)
– Der positive Look-Ahead, der nur passt, wenn der Text auf das angegebene Zeichen folgt. Es enthält nicht den Charakter in den Übereinstimmungen.
Zuletzt passen wir das Muster an und extrahieren die E-Mails aus dem Text.
Nachdem Sie das obige Beispiel ausgeführt haben, erhalten Sie eine Ausgabe wie die folgende:
alen@gmail.com
stefen@gmail.com
walker@gmail.com
Bitte beachten Sie, dass die hier freigegebenen Beispielcodes nur in der Windows PowerShell-Umgebung ausführbar sind.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedInVerwandter Artikel - PowerShell String
- Überprüfen Sie, ob ein String in PowerShell nicht NULL oder LEER ist
- Überprüfen Sie, ob eine Zeichenfolge in PowerShell leer ist
- Auswählen mehrerer Muster in einer Zeichenfolge mithilfe von PowerShell
- Entfernen Sie Leerzeichen aus einer Variablen mit PowerShell
- Ersetzen von Zeichenfolgen in PowerShell
- Extrahieren einer Teilzeichenfolge in PowerShell