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] Suppression commentaire et substitution de paramètre


Sujet :

Collection et Stream Java

  1. #1
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Heu... Je ne vais pas ouvrir un autre sujet mais je n'arrive pas à faire mon expression régulière.

    J'ai une chaine de caractère (sur plusieurs lignes)

    Je veux d'abord enlever toutes les lignes qui commencent par --.
    Alors j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str.replaceAll("--([0-9]|[A-Z]|[a-z]|\" \"|\"=\"|\\t|\".\"|\",\"|\"_\"|\">\"|\"<\"|\"(\"|\")\"|\"?\"|\"-\")*\\n","");
    En simplifié, ca donne :
    --([0-9]|[A-Z|[a-z]|" "|"="|\t|"."|","|"_"|">"|"<"|"("|")"|"?"|"-")*\n

    J'ai tout séparé parcequ'il ne prend pas en compte les ? sans les " ", enfin, en regexp, ca veut dire il y en a pas ou il y est une fois uniquement.

    Mais j'ai d'abord fait une expression plus simple. Je voulais remplacer chaque ? par ce que je veux, donc j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    str.replaceFirst("\"?\"",monParametre1);
    str.replaceFirst("\"?\"",monParametre2);
    str.replaceFirst("\"?\"",monParametre3);
    str.replaceFirst("\"?\"",monParametre4);
    str.replaceFirst("\"?\"",monParametre5);
    //etc.
    Mais, même un truc aussi simple ne fonctionne pas.

    [EDIT]
    Par exemple j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT
    <div style="margin-left:40px">Champ1,
    --Champ2,
    Champ3</div>FROM
    <div style="margin-left:40px">Table1</div>WHERE
    <div style="margin-left:40px">Id = ?;</div>
    Et je voudrais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT
    <div style="margin-left:40px">Champ1,
    Champ3</div>FROM
    <div style="margin-left:40px">Table1</div>WHERE
    <div style="margin-left:40px">Id = 585;</div>
    PS : Ne me dites pas que je peux utiliser une requête paramétrée.
    [/EDIT]

  2. #2
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Que pensez vous de ca ?
    ^.*--.*$
    ou ca ?
    '--'[^\n]*\n

    Pour remplacer la première expression ?

    PS : Je n'arrive même pas à remplacer I par A par exemple

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 194
    Points : 234
    Points
    234
    Par défaut
    Une petite idée comme ça :
    séparer les lignes : split("\n");
    supprimer les blancs pour chaque ligne : trim();
    si la ligne commence par "--", l'ignorer, et concaténer les autres en les séparant par des "\n".

    On perd la mise en forme mais les lignes à ignorer sont supprimées. Bon, ok, je suis pas un spécialiste de regex

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Wé merci pas con. Mais bon pour le ? ca m'embete quand meme.

  5. #5
    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 : 41
    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
    Points : 5 943
    Points
    5 943
    Par défaut
    A priori ceci marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // supprime les commentaires
    str = str.replaceAll("(\\t*| *)--.*?\\n", ""); 
     
    // remplace le premier ? trouvé par la représentation textuelle du paramètre
    str = str.replaceFirst("\\?", String.valueOf(monParamètre));
    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

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

  6. #6
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    J'avais oublié de faire le "req = " :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    req = req.replace(blablabla...);

  7. #7
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2006
    Messages : 38
    Points : 46
    Points
    46
    Par défaut
    Salut,

    j'ai ceci qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    str = str.replaceAll("(\\s*)--(.*)", "");
     
    str = str.replaceFirst("\\?", param);

  8. #8
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Merci de votre aide

    J'ai fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    req = req.replaceAll("--.*\\n", "");
    req = req.replaceFirst("\\?", parametre);
    Ca marche nickel

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

Discussions similaires

  1. [MySQL] Suppression de données à partir des paramètres passés en lien
    Par cyril3d dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 01/04/2008, 14h52
  2. Queries et substitution de paramètres
    Par clisson dans le forum XMLRAD
    Réponses: 4
    Dernier message: 12/02/2008, 13h55
  3. [DOM] RegEx - Suppression d'attributs dans une balise
    Par jumbay dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 17/10/2007, 20h40
  4. problème regex suppression balises HTML
    Par crazydindon dans le forum Langage
    Réponses: 6
    Dernier message: 11/09/2007, 14h39
  5. [REGEX] suppression d'un bloc interne
    Par erwan.bodere dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 23/04/2007, 16h44

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