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 :

Regex et Smileys


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
    Juin 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 61
    Par défaut Regex et Smileys
    Bonjour à tous !

    Je suis actuellement sur un projet de traitement de texte en php, et dans ce cadre, je souhaite retirer tout les smileys de ce dit texte.

    En effet ceux-ci sont écrits sous la forme : :texte:

    J'ai donc essayé de créer une expression régulière qui reconnaitrait un texte entre deux ":", et ce dit texte ne serait composé que de lettres en minuscules. Bien sur il ne devrait y avoir aucun espace entre les caractères ":" et le texte qu'ils entourent... Cela permettra de différencier l'utilisation standard du caractère ":"...

    Voilà donc ce que je suis déjà arrivé a à faire, mais qui en marche pas.. Je ne pense pas être loin pourtant ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = preg_replace("^:([a-z]*):$", "", $chaine);
    Merci d'avance à ceux qui pourront m'éclaircir !

    Bonne continuation

    wILL

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    ta regex DOIT selon ta configuration occuper toute la ligne du début à la fin vu que tu as mis ^ et $ or ce n'est pas le cas. De plus il faudrait (juste pour plus de clarté) remplacer le * par un +. Enfin tu as pas mis de delimiteurs

    Je ferais comme ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $chaine = preg_replace("#\:([a-z]+)\:#", "", $chaine);

  3. #3
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    même si cela ne doit pas gêner en pratique, les : n'ont pas besoin d'être échappés. Il n'y a pas non plus besoin de capture, car le contenu matché n'est pas réutilisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = preg_replace("#:[a-z]+:#", "", $chaine);

Discussions similaires

  1. [Regex] Vérifier qu'une chaîne respecte une expression régulière
    Par PeteMitchell dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 13/05/2004, 14h22
  2. [regex][string] replaceAll bogué ?
    Par 7eme dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 13/11/2003, 16h36
  3. Cherche regex...
    Par laurent_h dans le forum C
    Réponses: 4
    Dernier message: 31/03/2003, 11h24
  4. Smiley (image dans un RichEdit)
    Par Waxayaz dans le forum Composants VCL
    Réponses: 3
    Dernier message: 06/02/2003, 14h32

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