Ein kurzes Beispiel für PowerShell Regular Expressions.

Szenario: Dateinamen wie ID1234_MyDocumentXYZ.pdf.lnk abgleichen. Wir wollen die Zahl nach ID und den Rest des Dateinamens zwischen Unterstrich _ und Dateiendung .lnk extrahiert haben.

1
2
3
4
5
$oldLink = "ID1337_MyDocumentXYZ.pdf.lnk"
if($oldLink -match 'ID(?<id>\d+)_(?<actualFilename>.+)\.lnk$') {
        Write-Output "ID: $($Matches.id)"
        Write-Output "Actual Filename: $($Matches.actualFilename)"
}

(?<id>\d+) ist eine benannte Regex-Capture-Group (initialisiert mit ?<groupname>). Die Group matched jedes numerische Zeichen (\d). Das + danach ist ein Multiplikator, damit gegen beliebig viele numerische Zeichen gematcht wird. Da die Regular Expression erfolgreich gematcht hat, ist als Ergebnis $true zurückgekommen und wir haben den if-Block ausgeführt.

Ausgabe:

1
2
ID: 1337
Actual Filename: MyDocumentXYZ.pdf