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 :

Cherche pattren regex (remplacer caractères de ponctuation))


Sujet :

Collection et Stream Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Cherche pattren regex (remplacer caractères de ponctuation))
    Bonjour a touts et à toutes.

    Je cherche un pattern pour regex pour remplacer les virgules, points et autres ponctuations par autres caractères. ex :

    ("," => "#v");
    ("." =>"#p");
    (";" =>"#pv");
    (":" => "#pp");
    ("\"" => "#g");
    ("(" =>"#po");
    (")" => "#pf");
    ("[" =>"#co");
    ("]" => "#cf");
    ("'" =>"#a");

    J'ai testé ça : \\W - mais je perds les caractères accentués dans les mots.

    Également je testé ça : [',\":\\.\\;\\[\\]\\(\\)] - dans la sortie j'ai parfois les anomalies : ex:

    chaine à traiter : ' oreille , l '
    résultat obtenu: ' oreille #v' - j'ai perdu espace l espace


    Si quelqu'un une idée...?
    Merci d'avance.

  2. #2
    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
    Je ne pense pas qu'ici tu es besoin des expressions régulières, la méthode String.replace() devrait convenir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Map<String, String> replacements = new HashMap<String, String>();
    replacements.put(",", "#v");
    replacements.put(".", "#p");
    ...
     
    for(String ponctuation : remplacements.keySet()) {
        text = text.replace(ponctuation, replacements.get(ponctuation));
    }
    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

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    ...Toute à fait.
    T'as toute à fait raison. Cette possibilité m'a échappée.
    Ca fonctionne très bien.
    Merci beaucoup.

    Voici ma version :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
        static String punctuation(String nodeText) {
     
            Map<String, String> replacementsPunct = new HashMap<String, String>();
            replacementsPunct.put(",", "#v_");
            replacementsPunct.put(".", "#p_");
            replacementsPunct.put(";", "#pv_");
            replacementsPunct.put(":", "#pp_");
            replacementsPunct.put("\"", "#g_");
            replacementsPunct.put("(", "#po_");
            replacementsPunct.put(")", "#pf_");
            replacementsPunct.put("[", "#co_");
            replacementsPunct.put("]", "#cf_");
            replacementsPunct.put("'", "#a_");
     
            if (!nodeText.isEmpty()) {
                for (String ponctuation : replacementsPunct.keySet()) {
                    nodeText = nodeText.replace(ponctuation, replacementsPunct.get(ponctuation));
               }
            }
            return nodeText;
        }

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

Discussions similaires

  1. Regex remplacer les caractères invalides d'un email
    Par pcouas dans le forum Général Java
    Réponses: 5
    Dernier message: 11/12/2013, 12h50
  2. Remplacer caractère via une regex
    Par djalouk dans le forum Langage
    Réponses: 6
    Dernier message: 03/09/2012, 15h03
  3. Regex Remplacer un caractère
    Par Carb0 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/12/2008, 17h01
  4. [Regex] Remplacer caractéres spéciaux par leurs correspondants "normaux"
    Par dragonfly dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/09/2008, 10h15
  5. remplacement caracteres de ponctuation par "_"
    Par LineLe dans le forum ASP
    Réponses: 5
    Dernier message: 22/10/2003, 08h37

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