Extrahieren Sie Texte mit Regex in PowerShell

MD Aminul Islam 21 Juni 2023
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:

  1. (?<=\<) – 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.
  2. +? - Eroberungen (+) eines oder mehrerer Zeichen. Es sind aber nur wenige Zeichen möglich.
  3. (?=\>) – 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.

MD Aminul Islam avatar MD Aminul Islam avatar

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.

LinkedIn

Verwandter Artikel - PowerShell String