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 PHP Discussion :

Supprimer les caractères répétés [RegEx]


Sujet :

Langage PHP

Vue hybride

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 17
    Par défaut Supprimer les caractères répétés
    Bonjour,

    Je cherche a supprimer les caracteres répétés dans un chaine en php.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $string="Coooool Man !!!!!!!!!! Wazaaaaaaaaaaaaa" devient Coool Man !!! Wazaaa"
    Il faudrait une boucle pour chaque caractere possible et faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ereg_replace("a{3,999}", "aa", $string);
    N'y a-t-il pas plus efficace comme REGEX ?

    Merci de votre aide.

    LoLoVioLo

  2. #2
    Membre confirmé
    Avatar de savageman86
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Par défaut
    Salut,

    Déjà utilise preg_replace et pas ereg_replace,
    Ensuite il suffit de remplacer le a par un . (qui signifie "n'importe quel caractère), de le capturer (l'entourer de parenthèses) pour pouvoir l'utiliser dans la chaîne de remplacement.
    Enfin, je pense que si tu veux garder 3 caractères, tu peux faire commencer à 4 et non à 3.
    Dernière remarque : tu n'est pas obligé de mettre 999, c'est dailleurs mieux car si quelqu'un met 1000 fois le même caractère, ton script ne fonctionnera alors pas..

    Tu devrais pouvoir t'en sortir !

  3. #3
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    @savageman86 > ca ne fonctionnera pas. Le point remplacera n'importe quel caractere, donc (.{4,}) matchera aussi "abcd"

    Je pense qu'il faudrait utiliser les references arriere, quelque chose comme :


  4. #4
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    Done ! (t'as de la chance que je m'ennuie au boulot ^^)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $text='Coooool Man !!!!!!!!!! Wazaaaaaaaaaaaaa';
    $masque='#(.)\1{3,}#';
    $remplace='\1\1\1';
     
    preg_match_all($masque, $text, $matches);
     
    echo '<pre>';
    var_dump($matches);
     
    echo preg_replace($masque, $remplace, $text);
    ?>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 17
    Par défaut
    Wahou !!!

    Eh bah c'est ce qui s'appelle du tout cuit.

    Que dire a part un grand merci et merci a ton employeur de ne pas te donner de boulot

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

Discussions similaires

  1. [PL/SQL] Supprimer les caractères non numériques
    Par Oliveuh dans le forum PL/SQL
    Réponses: 6
    Dernier message: 25/06/2015, 12h13
  2. [RegEx] Regex pour supprimer tous les caractères répétés
    Par deadc0de dans le forum Langage
    Réponses: 8
    Dernier message: 25/11/2009, 08h25
  3. [CSV] Supprimer les caractères qui gênent
    Par sami_c dans le forum Langage
    Réponses: 5
    Dernier message: 08/09/2006, 08h41
  4. Supprimer les caractères blancs en fin de ligne
    Par st20085 dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 06/09/2006, 22h51
  5. [Jsp] Supprimer les caractère spéciaux d'une chaine
    Par PeteMitchell dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/05/2004, 11h11

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