java Dateinamen filter pattern [duplizieren]

8

Ich muss

implementieren %Vor%

Dabei ist ptrn ein Stilmuster für die Eingabeaufforderung wie "* 2010 * .txt"

Ich bin mit der FilenameFilter-Klasse vertraut, kann sie aber nicht implementieren %Code% weil String.matches () solche Muster nicht akzeptiert.

Danke!

    
Serg 16.06.2010, 22:27
quelle

2 Antworten

14

Die String#matches() akzeptiert regulären Ausdruck Muster .

Die Regex-Variante der "Laien" -Variante *2010*.txt wäre .*2010.*\.txt .

Also sollte folgendes funktionieren:

%Vor%

Der doppelte Backslash dient nur dazu, einen tatsächlichen Backslash darzustellen, da der Backslash selbst ein Escape-Zeichen in Java String ist.

Alternativ können Sie auch ohne Regex die anderen String -Methoden verwenden:

%Vor%

Ihre beste Wette ist wahrscheinlich, dass ptrn ein echtes Regex-Muster darstellt oder jedes . mit \. und * mit .* string-replace ersetzt ein gültiges Regex-Muster.

%Vor%     
BalusC 16.06.2010, 22:32
quelle
2

Sie müssen möglicherweise Ihre spezifischen Platzhalter für die in Java-Regex verwendeten erstellen.

Um beispielsweise "*" zu ersetzen, könnten Sie etwas wie:

verwenden %Vor%     
OscarRyz 16.06.2010 22:47
quelle