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 :

regex ou pas regex


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut regex ou pas regex
    Bonjour,

    Je voulais vous demander conseil...
    dans un texte brut je doit remplacer un chaine de caractère qui commence toujours par toto et fini par @

    généralement entre les deux il y a des parenthèses et des chiffres qui diffèrent

    toto(xxxxxx)@
    que me conseillez vous ?


    merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Et bien une regexp toute conne peut le faire. Mais qu'entends tu par "Généralement entre les deux ..." il y en a toujours ou pas ? Est-ce que ca a une importance pour reconnaitre ton motif ? ou toto et @ suffisent ? Il faut te poser ces questions pour ta regexp...
    [edit] Un petit tour ici pour voir comment faire ta regexp et hop :
    http://java.sun.com/j2se/1.4.2/docs/...a.lang.String)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut
    merci

    en fait il y a toujours des parenthèses, mais il se peut que dans les parenthèses il n'y ai pas que des chiffres admettons un espace par exemple...

    je pensais utiliser \d mais je sais pas combien de chiffre comporte le nombre

  4. #4
    Invité
    Invité(e)
    Par défaut
    et bien si au milieu des parenthèses tu peux avoir n'importe quoi en quantité inconnue tu peux utiliser la pattern :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    toto\\(.*\\)@ // zero fois ou plus
    toto\\(.+\\)@ // au moins une fois
    si tu exécutes ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    String s1 = "blablablatoto(234)@blablabla";
    String s2 = "blablablatoto( 3)@blablabla";
    String s3 = "test";
    String s4 = "blablablatoto()@blablabla";
    System.out.println(s1.replaceAll("toto\\(.+\\)@", "remplace"));
    System.out.println(s2.replaceAll("toto\\(.+\\)@", "remplace"));
    System.out.println(s3.replaceAll("toto\\(.+\\)@", "remplace"));
    System.out.println(s4.replaceAll("toto\\(.+\\)@", "remplace"));
    tu obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    blablablaremplaceblablabla
    blablablaremplaceblablabla
    test
    blablablatoto()@blablabla

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut
    merci

    c'est parfait
    en plus super rapide


  6. #6
    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
    Citation Envoyé par dantes88
    je pensais utiliser \d mais je sais pas combien de chiffre comporte le nombre
    \d représente un chiffre uniquement donc s'il peut y avoir d'autres caractères cela ne marchera pas. Pour les quantifieurs il sont indiqués dans la doc de la classe Pattern .


    Citation Envoyé par George7
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     toto\\(.*\\)@ // zero fois ou plus
    toto\\(.+\\)@ // au moins une fois
    Attention, il manque le ? derrière le * et le + sinon dans le cas où le pattern apparaît plusieurs fois ça ne marche plus .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regex = "toto\\(.*?\\)@";
    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

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par le y@m's Voir le message
    Attention, il manque le ? derrière le * et le + sinon dans le cas où le pattern apparaît plusieurs fois ça ne marche plus .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regex = "toto\\(.*?\\)@";
    Stimmt, dans mon empressement j'ai zappé ça, merci de la précision

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

Discussions similaires

  1. Convertir C# RegEx vers Java RegEx
    Par hbespoir2003 dans le forum C#
    Réponses: 6
    Dernier message: 19/06/2010, 11h38
  2. Convert C# RegEx to Java RegEx
    Par hbespoir2003 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 17/06/2010, 23h31
  3. [RegEx] [regex][preg_match_all]ma regex marche pas
    Par hansaplast dans le forum Langage
    Réponses: 15
    Dernier message: 05/09/2006, 14h59
  4. [REGEX] Souci de regex
    Par LE NEINDRE dans le forum Langage
    Réponses: 5
    Dernier message: 27/02/2006, 09h01

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