Ich habe versucht, einen regulären Ausdruck zu erstellen, um den Dateipfad in Java wie
zu findenC: \ abc \ def \ ghi \ abc.txt
Ich habe dieses ([a-zA-Z]:)?(\[a-zA-Z0-9_-]+)+\?
versucht, wie folgender Code
Aber es gibt mir immer, falsch als Ergebnis. Bitte helfen Sie mir.
Danke
Java verwendet Backslash-Escaping, weißt du, also musst du deine Backslashes zweimal entzweien, einmal für die Java-Zeichenkette und einmal für die Regexp.
%Vor%Ihr Regexp entsprach einem Literal [-zA-Z0-9_- 'String und einem Literal'? ' Am Ende. Ich habe auch einen Punkt hinzugefügt, der 'abc.txt' erlaubt.
Denken Sie darüber nach, einen anderen Mechanismus zum Ermitteln gültiger Dateinamen zu verwenden, da es verschiedene Schemata (d. h. Unix) gibt. java.util.File wird wahrscheinlich eine Ausnahme auslösen, wenn der Pfad ungültig ist, was eine gute Alternative sein könnte, obwohl ich keine Ausnahmen für den Kontrollfluss verwenden möchte ...
Wenn es nur dem Pfad von Dateien entsprechen muss, die auf demselben Computer liegen, auf dem Ihre App ausgeführt wird, können Sie Folgendes verwenden:
%Vor%Wenn Sie also Ihre App unter Windows ausführen, fängt der obige Code ungültige Windows-Pfade ab und wenn Sie unter Unix laufen, werden ungültige Unix-Pfade usw. gefunden.