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

Langage Java Discussion :

problème avec regex


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut problème avec regex
    bonjour,
    j'ai un string: "blablabla=blabla==blabla";
    je voudrais le trensformer en: "blablabla = blabla==blabla";
    mais pas en "blablabla = blabla = = blabla";

    j'ai essayer String.replaceAll("={1}"," = "); mais ça n'a pas marché

    ya t-il une autre alternative ?
    merci

  2. #2
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    c'est le "==" qui te pose le probleme remplace "==" par "#" (ou un autre caractere inutilisé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    machaine=machaine.replaceAll("==","#");
    machaine=machaine.replaceAll("="," = ");
    machaine=machaine.replaceAll("#","==");
    voila

  3. #3
    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,



    Tu peux utiliser les constructions spéciales pour spécifier que le caractère = ne doit ni être précédé ni suivi par un autre caractère = :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str.replaceAll("(?<!=)=(?!=)", " = ")
    a++

  4. #4
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut
    merci, moi j'ai le document de
    Expressions régulières
    en Java
    avec l’API Regex Hugo Etiévant Dernière mise à jour : 05 août 2004
    il ne parle pas des "Special constructs (non-capturing)", ce document n'a t-il pas de mise à jour ???

  5. #5
    Membre chevronné
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Par défaut
    j'ai un autre petit problème :

    voila le type de String :

    "blablabla(ab,ce)blablabla(a+b)blablablabla(aaaaa);"

    je voudrais extraire seulement les parenthèses qui ont a l'inerieure des virgule ","
    j'ai essayé ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replaceAll("\\([\\w\\,]*\\)","\\$");
    en les remplacant par $ juste pour tester mais ja reçois ça comme resultat

    "blablabla$blablabla(a+b)blablablabla$;"

    le truc c'est que je veux qu'il effectue le replacement SEULEMENT SI virgule il y a


    merci pour l'aide !!

  6. #6
    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
    C'est normal car ceci [\\w\\,]* signifie : un caractère parmi a-zA-Z_0-9 (\\w) ou une virgule, le tout zéro ou plusieurs fois...

    Donc il n'y a pas d'obligation sur la présence de la virgule...

    Il faut bien sûr la rendre obligatoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replaceAll("\\([\\w,]*,[\\w,]*\\)","\\$");
    a++

Discussions similaires

  1. problème avec Regex
    Par saigon dans le forum Ruby
    Réponses: 2
    Dernier message: 13/10/2008, 17h50
  2. Problème avec regex non trouvé
    Par Damien69 dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2008, 13h32
  3. problèmes avec Regex sous c#
    Par santana2006 dans le forum C#
    Réponses: 2
    Dernier message: 24/01/2007, 15h42
  4. Problème avec Regex
    Par trihanhcie dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/07/2006, 14h50
  5. Problème avec RegEx et une Query string
    Par Erakis dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 15h48

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