Visualizzazione dei risultati da 1 a 7 su 7

Discussione: validare un filename

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    50

    validare un filename

    Come posso validare un filename ed accertarmi che non esistano caratteri diversi da a-z, A-Z, 0-9, _, -, . blank?


    Grazie
    frapal

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: validare un filename

    Originariamente inviato da frapal
    Come posso validare un filename ed accertarmi che non esistano caratteri diversi da a-z, A-Z, 0-9, _, -, . blank?
    Con una "espressione regolare". A parte i caratteri che hai indicato, precisa meglio il formato (quanti caratteri? centra la estensione?)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    50
    una espressione regolare di questo tipo "[^\\w-.\u0020]"?
    Precisamente Quale metodo devo usare?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da frapal
    una espressione regolare di questo tipo "[^\\w-.\u0020]"?
    Così però rappresenta solo 1 carattere. Se vuoi che valga per una sequenza di caratteri devi applicare un "quantificatore" a questa classe di caratteri.

    E invece di \u0020 puoi anche mettere proprio lo "spazio".

    Originariamente inviato da frapal
    Precisamente Quale metodo devo usare?
    matches() di String.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    50
    Perdona la mia incompetanze, ma non ho molta dimestichezza con le espressioni regolari.

    dato il codice seguente:

    Pattern pattern = Pattern.compile("[^\\w-.\ ]");
    Matcher matcher = pattern.matcher(pdfFile.getName());
    System.out.println(matcher.find());

    io mi aspetto che

    mi stampi true in questo caso:
    ADTF_Log_File_2009_11_26-13_44_47.pdf

    e false in quest'altro:
    ADTF_Log_File_2009_11_26-13_44_47£$%&.pdf

    invece mi restituisce sempre true.
    Se volessi effettuare il controllo su ogni carattere che compone il filename, come devo modificare l'espressione regolare?

    Grazie

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da frapal
    Perdona la mia incompetanze, ma non ho molta dimestichezza con le espressioni regolari.

    dato il codice seguente:

    Pattern pattern = Pattern.compile("[^\\w-.\ ]");
    Matcher matcher = pattern.matcher(pdfFile.getName());
    System.out.println(matcher.find());
    A grandi linee è ok. Nel senso che se "neghi" la classe di caratteri, devi usare find() per cercare la occorrenza di quel pattern ovvero la non presenza di uno di quei caratteri (sembra un giro di parole ... ). Se si volesse usare matches() la classe va "positiva" e con un quantificatore per dire "che tutti siano caratteri accettati".
    Puoi farlo in un senso o nell'altro ... è solo questione di intenderci!

    Però hai messo un \ prima dello spazio. Non serve.

    Originariamente inviato da frapal
    Se volessi effettuare il controllo su ogni carattere che compone il filename, come devo modificare l'espressione regolare?
    Come ho appena detto. Metti la classe "positiva" e con un quantificatore es. "[ .... ]+" ovvero "uno o più di quella classe". E lo usi con matches() (di String o di Matcher, decidi tu se compilare la regex 1 volta sola o no).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    50
    Ottimo.

    Grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.