Verwenden von Regex in Powershell zum Abrufen von E-Mails
Ich habe ein Skript geschrieben, um verschiedene Felder in einer HTML-Datei zu erfassen und Variablen mit den Ergebnissen zu füllen. Ich habe Probleme mit dem regulären Ausdruck zum Abrufen der E-Mail. Hier ist ein Beispielcode:
$txt='<p class=FillText><a name="InternetMail_P3"></a>[email protected]</p>'
$re='.*?'+'([\\w-+]+(?:\\.[\\w-+]+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,7})'
if ($txt -match $re)
{
$email1=$matches[1]
write-host "$email1"
}
Ich erhalte folgenden Fehler:
Bad argument to operator '-match': parsing ".*?([\\w-+]+(?:\\.[\\w-+]+)*@(?:[\\w-]+\\
.)+[a-zA-Z]{2,7})([\\w-+]+(?:\\.[\\w-+]+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,7})" - [x-y] range in reverse order..
At line:7 char:16
+ if ($txt -match <<<< $re)
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : BadOperatorArgument
Was vermisse ich hier? Gibt es auch einen besseren regulären Ausdruck für E-Mails?
Danke im Voraus.