Private/Wissen/X_Technology/X16_Technology_RegularExpression.ps1
# ? TITEL Regular Expression # ? DESCRIPTION Reguläre Ausdrücke # ? TAGS RegEx Regular Expression # ? VERSION 2019.11.08 # TODO Weiterführende und Nachschlage-Informationen Get-Help -Name about_regular_expressions -ShowWindow Get-Help -Name about_Comparison_Operators -ShowWindow Get-Help -Name about_Operators -ShowWindow Start-Process -FilePath 'https://docs.microsoft.com/de-de/dotnet/standard/base-types/regular-expression-language-quick-reference' # Sprachelemente für reguläre Ausdrücke – Kurzübersicht <# ? Kurzübersicht der gängigsten Kürzel Handout: https://download.microsoft.com/download/D/2/4/D240EBF6-A9BA-4E4F-A63F-AEB6DA0B921C/Regular%20expressions%20quick%20reference.pdf ! PLATZHALTER BESCHREIBUNG . Alle Zeichen, ausgenommen dem Zeilenumbruch [^abc] Alle Zeichen, ausgenommen abc [^a-z] Alle Zeichen, ausgenommen a bis z [abc] Die Zeichen abc [a-z] Alle Zeichen von a-z \d Jede Ziffer von 0 bis 9 \D Jedes Zeichen ausgenommen Ziffern von 0-9 \f Zeilenvorschub (Form Feed, ASCII 12) \n Zeilenumbruch (Line break) \r Wagenrücklauf (Carriage return) \s Jeglicher Leerraum (whitespace => space, tab, new line) \S Jeglicher NICHT Leerraum \t Tabulator ... Und viele mehr.... ! QUANTIFIZIERER BESCHREIBUNG * Mindestvorkommen = 0 , Maximalvorkommen = unendlich + Mindestvorkommen = 1 , Maximalvorkommen = unendlich ? Mindestvorkommen = 0 , Maximalvorkommen = 1 {n,} Mindestvorkommen = n , Maximalvorkommen = unendlich {n,m} Mindestvorkommen = n , Maximalvorkommen = m {n} Mindestvorkommen = n , Maximalvorkommen = n ... Und viele mehr.... ! SONSTIGES BESCHREIBUNG $ End des Textes ^ Start des Textes ... Und viele mehr.... #> # ? EMail Adresse validieren $string = 'a.krick@outlook.com' $regex="\A(?<EMail>[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\z" If ($string -Match $regex) { [System.Net.Mail.MailAddress]$Matches.EMail } # ? IP Adresse validieren $string = '192.168.178.3' $regex='(?<IPv4Address>((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))' If ($string -Match $regex) { [IPAddress]$Matches.IPv4Address } # ? TAB in ; umwandeln @" Wert1 Wert2 Wert3 "@ -replace '[\t]', ';' # ? Teil-String über Gruppennamen finden $text = 'The problem was discussed in KB552356. Mail feedback to admin@powershell.org' $text -match '(?<kb>KB\d{4,6}).* (?<email>[a-z@\.]{7,50})' | Out-Null $Matches.kb $Matches.email |