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

Collection et Stream Java Discussion :

[Regex] Pb avec replaceFirst


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Par défaut [Regex] Pb avec replaceFirst
    Bonjour,

    J'ai une chaine de caractère comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String chaine = "article* toto";

    Et lorsque je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String mot = "article*" ;
    chaine = chaine.replaceFirst(mot,"");
    J'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
    *
    Effectivement le * doit être un caractère spécial pour les expressions regulières, mais alors comment signifier que je souhaite remplacer la chaine article* correctement ?

    Merci d'avance,

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Par défaut
    il suffit de mettre un \ devant
    ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String mot = "article\\*" ;
    chaine = chaine.replaceFirst(mot,"");

  3. #3
    Membre Expert
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Par défaut
    Merci, ça marche...

    maintenant il faut que je fasse ce remplacement aussi sur tous les caractères spéciaux des expressions reg susceptibles de se trouver dans ma chaine .

    c'est bizarre, rien n'a été fait pour cela ?

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par elitost
    maintenant il faut que je fasse ce remplacement aussi sur tous les caractères spéciaux des expressions reg susceptibles de se trouver dans ma chaine .

    c'est bizarre, rien n'a été fait pour cela ?
    Pour protéger une sous-chaine tu peux utiliser \Q et \E. Tout ce qui se trouve entre ces deux 'codes' sera considéré comme de simple caractères...
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String mot = "\\Qarticle*\\E" ;
    Avec Java 5.0 tu peux utiliser la méthode statique Pattern.quote() qui te fait ca automatiquement...

    a++

  5. #5
    Membre Expert
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Par défaut
    merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 09/12/2008, 00h28
  2. [c# REGEX]Problème avec une expression régulière
    Par mezzo_998 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 24/11/2007, 13h03
  3. [RegEx] regex majuscule avec accent
    Par zobsystem dans le forum Langage
    Réponses: 5
    Dernier message: 22/06/2007, 16h29
  4. REGEX problème avec les "
    Par storm_2000 dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 30/11/2006, 18h32
  5. [RegEx]Probleme avec String.split
    Par sebastieng dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 09/02/2006, 21h24

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