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 :

Remplacer un caractère par une expression régulière dans une chaîne


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 60
    Par défaut Remplacer un caractère par une expression régulière dans une chaîne
    Bonsoir à tous et toutes,

    J'ai rencontré un problème cet après-midi. Je vous l'explique :

    J'ai un fichier dont je récupère le nom et l'extension. L'extension contient un '?' qui signifie que ce caractère peut-être une quelconque lettre de l'alphabet. Je dois donc la remplacer par une lettre pour pouvoir ensuite la comparer à une autre extension de fichier.

    J'avais pensé à une expression régulière : [a-zA-Z] mais ensuite pour remplacer le '?' je ne sais pas comment procéder.

    Je pense qu'il faut utiliser la méthode replaceAll(String str1, String str2) mais je ne sais pas comment mettre cette expression régulière.

    replaceAll("?",...) Je ne sais pas comment mettre cette expression dans l'appel de la méthode.

    Pour la suite, je compare l'extension récupérée grâce à replaceAll avec une autre.
    Par exemple, j'ai l'extension "?xt", je la remplace par "[a-zA-Z]xt" et je la compare à l'autre extension (txt par exemple).

    Voilà, j'espère avoir été assez clair et je vous remercie d'avance pour votre aide.

    Bonne soirée.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    replaceAll("\\?","[a-zA-Z]"); ou replaceAll("\\?","\\w");

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut
    replaceAll("\\?","[a-zA-Z]")

    Par contre, pas d'accord pour replaceAll("\\?","\\w").
    D'une part,ca accepte aussi les chiffres -> [a-zA-Z_0-9]
    D'autre part, avec String.replaceAll(String regex, String replacement ) les \ dans la chaine de remplacement sont à utiliser avec précaution: ils sont interprétés comme une séquence d'échappement de litéral de char: donc ca remplacera les char ? par des char w tout court au lieu de la chaine \\w.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 60
    Par défaut
    Bonjour,

    Merci pour vos réponses mais il n'y a apparemment pas la bonne solution.

    Lorsque je fais replaceAll("\\?","[a-zA-Z]") : j'obtiens "[a-zA-Z]xt" comme extension alors que je veux juste une lettre quelconque.
    Pour le \\w, j'ai testé et j'obtiens juste un w.

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    une seule lettre? Ton message semblait dire que tu voulais une expression rationnelle pour pouvoir comparer si ?xt peut s'appliquer à txt .... Tu peux préciser ton problème dans ce ca?

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 60
    Par défaut
    En fait j'ai un filtre d'extension qui est ".?xt"

    Je cherche tous les fichiers dont l'extension est ".?xt" dans un dossier. Et le '?' peut représenter n'importe quelle lettre.

    Par exemple si j'ai ".txt" ou ".ext" c'est bon, sinon ce n'est pas bon.

    Je pensais remplacer le filtre en remplacant le '?' par cette expression...

    Edit : En fait, je pense que c'est ce que je veux, mais quand je compare à l'autre extension, ça compare "[a-zA-Z]xt" avec "txt", ce qui n'est pas bon alors que ça devrait. J'utilise la méthode compareToIngoreCase, peut-être que ce n'est pas la bonne solution...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  2. Caractères spéciaux dans une expression régulière
    Par marcorel dans le forum Langage
    Réponses: 4
    Dernier message: 22/11/2008, 00h26
  3. Une date butoire dans une expression régulière
    Par zooffy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 14/02/2008, 10h11
  4. [RegEx] Utiliser une expression régulière dans une requête
    Par Tobleron dans le forum Langage
    Réponses: 2
    Dernier message: 18/02/2007, 19h00
  5. Réponses: 6
    Dernier message: 17/08/2005, 12h38

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