Seite 1 von 2
gelöst: Dateiname und -Pfad per Regex prüfen
Verfasst: 07.08.2022 21:20
von bin_neu_hier
Hallo,
leider tu ich mir sehr schwer mit dem RegEx-Gedöhns und könnte da handfeste Unterstützung gebrauchen. Ich würde gern die Dateinamen (mit und ohne Laufwerk und Pfad), die der User meines Progrämmchens eingibt, auf Windows-Kompatibilität prüfen und würde das gerne mit einem RegEx-Vergleich prüfen. Hat jemand einen solchen RegEx-String, mit dem das zuverlässig zu machen ist?
Re: Regex und Knoten im Hirn
Verfasst: 07.08.2022 21:47
von mk-soft
Re: Regex und Knoten im Hirn
Verfasst: 08.08.2022 10:33
von NicTheQuick
CheckFilename prüft aber nur den Dateinamen ansich, nicht den ganzen Pfad.
@bin_neu_hier: Wenn du es selbst hinkriegen möchtest, empfehle ich dir
https://regex101.com/. Da kannst du dann alle möglichen Pfade, die du erkennen und nicht erkennen willst, im unteren Feld eingeben und im oberen kannst du deine Regular Expression definieren und schauen, ob sie genau das richtige macht. Außerdem gibt es dort super Erklärungen zu allen möglichen Dingen, die RegEx so kann.
Re: Regex und Knoten im Hirn
Verfasst: 08.08.2022 22:34
von jacdelad
Probier mal
..aber ohne Gewähr.
Re: Regex und Knoten im Hirn
Verfasst: 08.08.2022 22:39
von NicTheQuick
jacdelad hat geschrieben: 08.08.2022 22:34
Probier mal
..aber ohne Gewähr.
Damit funktionieren auf jeden Fall schon mal keine Netzwerkpfade, da die in der Regel keinen Laufwerksbuchstaben haben.
Re: Regex und Knoten im Hirn
Verfasst: 08.08.2022 22:42
von NicTheQuick
Auf Anhieb hab ich noch was auf Stackoverflow gefunden:
https://stackoverflow.com/a/64822303/4239139
Dabei ist auch ein Link zu Regex101 zum herumexperimentieren:
https://regex101.com/r/9J5JPW/1
Re: Regex und Knoten im Hirn
Verfasst: 09.08.2022 05:23
von jacdelad
NicTheQuick hat geschrieben: 08.08.2022 22:39
jacdelad hat geschrieben: 08.08.2022 22:34
Probier mal
..aber ohne Gewähr.
Damit funktionieren auf jeden Fall schon mal keine Netzwerkpfade, da die in der Regel keinen Laufwerksbuchstaben haben.
Schtümmt. Besser:
...allerdings werden hier an quasi jeder Stelle wilde "\" akzeptiert, also auch "\\\Netzwerk\Bla\Trödel.exe". Ich weiß noch nicht, wie man das austreiben kann.
Re: Regex und Knoten im Hirn
Verfasst: 11.08.2022 21:50
von bin_neu_hier
Hi allerseits!
Erstmal Danke für Euren Input! Ob die "wilden \\" ein Problem darstellen, weiß ich noch gar nicht. Könnte denn das Explorerlistgadget überhaupt Netzwerkpfade öffnen bzw. anzeigen? Wenn das Gadget die Sache schon limitieren würde, dann bräuchte ich nur was, das innerhalb des Gadgets funzt.
Plan "B": Wo fände ich denn Angaben, was ein "Bulletproof"-Dateipfad bzw. Dateiname in Windows enthalten darf und was nicht. Vielleicht muss es dann doch eine Procedure werden mit zig IF's und so.
Re: Regex und Knoten im Hirn
Verfasst: 12.08.2022 01:22
von jacdelad
Hm, also wenn ich mich nicht komplett irre sollte mit folgendem Code alles abgedeckt sein, auch wilde "\":
Code: Alles auswählen
CreateRegularExpression(0,"^([a-zA-Z]:)|(\\)(\\\w+)*([\\]|[.][a-zA-Z]+)?$")
Procedure Check(input.s)
ProcedureReturn Bool(MatchRegularExpression(0,input) And Not (FindString(Right(input,Len(input)-1),"\\") Or Right(input,1)="\"))
EndProcedure
Debug Check("C:\Windows\System32\MyFile.sys") ;1
Debug Check("C:\Windows\System32\MyFile") ;1
Debug Check("C:\Windows\System32\MyFile.sys\");0
Debug Check("C:\Windows\System32\\MyFile.sys");0
Re: Regex und Knoten im Hirn
Verfasst: 12.08.2022 12:02
von Nino
Kann dieser Thread bitte umbenannt werden in „Dateipfad prüfen“ o.Ä.?
Der momentane Titel „Regex und Knoten im Hirn“ ist für spätere Leser und beim Suchen nicht besonders hilfreich.