mismar
Goto Top

Powershell String Split Logikanpassung

Hallo zusammen,

ich komm bei einem aktuellen Problem nicht weiter. Ich habe ein PS Objekt. Aus diesem hole ich mir ein Attribute als String heraus. Der String schaut dann so aus:
name-hash also z.B. Hans.Wurst-0722A091243F2C8A6318BD6F76F7B6C0.txt

Ich muss aus diesem String den Usernamen herausholen. Bis jetzt habe ich mit $variable.Attribut.Split('-',3) gearbeitet. Hier kommt es jetzt in der großen Umgebung zum Problem, das Doppelnamen exisiteren. Der String lautet dann: Hans-Sepp.Wurst-0722A091243F2C8A6318BD6F76F7B6C0.txt bzw. Hans.Wurst-Mustermann-0722A091243F2C8A6318BD6F76F7B6C0.txt aus. Theoretisch könnte es noch den Fall Hans-Sepp.Wurst-Mustermann-0722A091243F2C8A6318BD6F76F7B6C0.txt geben.
Wie baue ich jetzt meinen Split so um, dass er immer nur den Namen extrahiert. Die Orientierung am "-" macht keinen Sinn mehr.

Hoffe ihr habt vielleicht Ideen, wie ich das lösen kann.

Content-ID: 640954

Url: https://administrator.de/contentid/640954

Ausgedruckt am: 24.11.2024 um 12:11 Uhr

TK1987
Lösung TK1987 15.01.2021 aktualisiert um 11:23:08 Uhr
Goto Top
Moin,

dafür nimmt man Regex.

Z.B.:
$variable.Attribut -replace '(?<=^\D+)-\d.*'  
tio.run

Gruß Thomas
mismar
mismar 15.01.2021 um 11:48:24 Uhr
Goto Top
Vielen Dank Thomas, klappt fast . Aber die Logik ist mir noch nicht ganz klar, sonst könnte ich es selbst anpassen.
Wenn der Hash-Wert mit einem Buchstaben beginnt, greift dein Regex nicht mehr :/
TK1987
Lösung TK1987 15.01.2021 aktualisiert um 12:03:30 Uhr
Goto Top
Zitat von @mismar:
Aber die Logik ist mir noch nicht ganz klar, sonst könnte ich es selbst anpassen.
Deswegen hatte ich ja das Tutorial verlinkt.
Vielleicht auch hilfreich quasi als Legende: Regex Cheat Sheet

Wenn der Hash-Wert mit einem Buchstaben beginnt, greift dein Regex nicht mehr :/
Jo, war auch nur ein Beispiel, da ich nicht genau weiß, wie deine Strings überhaupt aussehen. Sind das immer txt-dateien?
$variable.Attribut -replace '(?<=^\D+)-[A-F\d]+\.txt'  
mismar
mismar 15.01.2021 um 12:09:01 Uhr
Goto Top
Das mit dem Link habe ich glatt übersehen ... Sorry und danke dafür!

Ja genau, ich glaube mit dem Cheatsheet und dem Tutorial kriegt ich die Fehler noch selbst raus.

Vielen Dank nochmal!