IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Expression rationnelle simple


Sujet :

avec Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Par défaut Expression rationnelle simple
    Bonjour bonjour,
    Voila j'essaye de nettoyer le nom de mes fichiers, et la je bloque sur l'expression régulière à utiliser
    J'utilise replaceAll, et j'aimerais que mon expression supprime les chiffres au début de ma chaîne.
    Par exemple:
    239aeidfnsj88888 => aeidfnsj88888

    Donc j'ai déja essayé avec ce genre d'expression
    ^[0-9]/[a-zA-Z]
    Mais ca marche pas du tout

    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    C'est pourtant très simple : "^\d+".

    ^ en début de chaîne
    \d caractère numérique (chiffre, équivalent à [0-9])
    + présent 1 à n fois

    En pensant à doubler le \
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filename.replaceAll("^\\d+");
    Pour plus d'infos cf la doc de la classe Pattern .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Par défaut
    Oki super

    J'en etais pas si loin j'avais testé ^[0-9] mais j'avais oublié le + lol

    Merci beaucoup pour la réponse, et le lien qui se retrouve dans mon bookmark

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Par défaut
    C'est encore moi lol
    Voila je rencontre un petit problème... J'essaye de renommer un ensemble de fichiers et répertoires, j'ai pris le code pour parcourir des dossiers sur ce site(partie tuto) et j'y ai rajouté mes class pour modifier les noms...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    public static String sansAccents(String source) {
    		return source.replaceAll("é|è|ê|ë", "e").replaceAll("É|Ê|È|Ë", "E").replaceAll("Î|Ï", "I").replaceAll("à|â|ä", "a").replaceAll("Ä|Â", "A").replaceAll("î|ï", "i").replaceAll("ô|ö", "o").replaceAll("ç", "c");
    	}
     
    	// Permet de traiter les noms de fichiers(supp accent, et chiffre)
    	public static String modifieFileName(String pathNameOld) {
    		StringBuilder sb = new StringBuilder();
    		// On enleve deja les accents sur l'ancien chemin
    		String pathNameNew = pathNameOld.replaceAll("é|è|ê|ë", "e").replaceAll("É|Ê|È|Ë", "E").replaceAll("Î|Ï", "I").replaceAll("à|â|ä", "a").replaceAll("Ä|Â", "A").replaceAll("î|ï", "i").replaceAll("ô|ö", "o").replaceAll("ç", "c");
    		// On recupere seulement le nom de fichier
        	String []res = pathNameNew.split("/");
        	String fileNameOld = res[res.length-1];
        	// On traite le nom du fichier
        	fileNameOld=fileNameOld.replaceFirst("^\\d* - /[a-zA-Z]+","");
        	res[res.length-1]=fileNameOld;
            // On recolle les morceaux
    		for(int i=0; i< res.length; i++) {
    			sb.append(res[i]).append("/");
    		}
    		sb.setLength(sb.length()-1);
    		return sb.toString();
    	}
     
    	public static void listeRepertoire(File repertoire) {
            if(repertoire.isDirectory()) {
            	File[] list = repertoire.listFiles();
                if(list != null){
                	for(int i = 0; i < list.length; i++) {	// Appel récursif sur les sous-répertoires
    	                String last=list[i].toString();
                		if(list[i].isDirectory()) {
    		                File newFile = new File(sansAccents(list[i].toString()));
    		                list[i].renameTo(newFile);
    	                }
     
    	                if(list[i].isFile()) {
    	                	File newFile2 = new File(modifieFileName(list[i].toString()));
    		                list[i].renameTo(newFile2);
    	                }
    	                if(last.compareTo(list[i].toString())!=0) {
    	                	System.out.println(last);
    	                	System.out.println(list[i].toString());
    	                }
                		listeRepertoire(list[i]);
    	            } 
                }
     
                else {
                	System.err.println(repertoire + " : Erreur de lecture.");
                }
            } 
    	}
    Mais le problème c'est qu'il ne fait plus le parcours d'un coup...
    Ca doit venir du fait que je modifie le nom... et comme c'est en récursif...
    Avant de partir a 10 000 milles lieux j'aimerais savoir si c'est la bonne raison lol

    et aussi pour mon replaceAll, j'ai tenté de modifier l'expression car j'ai des fichiers qui ne possèdent que des chiffres donc pour ceux là, il ne faut pas que je supprime les chiffres...

    Merciii pour votre aide

Discussions similaires

  1. Expression rationnelle simple
    Par sandre dans le forum VB.NET
    Réponses: 1
    Dernier message: 10/06/2010, 17h49
  2. Non ambiguïté d'expressions rationnelles
    Par David.Schris dans le forum Algorithmes et structures de données
    Réponses: 22
    Dernier message: 27/12/2005, 16h11
  3. [RegEx] Images et expression rationnelle
    Par Invité dans le forum Langage
    Réponses: 7
    Dernier message: 30/10/2005, 15h50
  4. Réponses: 2
    Dernier message: 21/02/2005, 10h42
  5. [langage] Expressions rationnelles (perl/C)
    Par ma2th dans le forum Langage
    Réponses: 11
    Dernier message: 02/08/2004, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo