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 :

simple, vraiment ? texte entre guillemets [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 16
    Points : 10
    Points
    10
    Par défaut simple, vraiment ? texte entre guillemets
    Bien le bonjour!

    Depuis quelques temps, j'essaie de faire une expression régulière qui me paraît assez simple... Mais quand même, j'y arrive pô.

    Dans l'idée, il s'agit de remplacer du texte entre guillemets dans une string, comme par exemple :
    Et je dis : "et il dit", que ton espoir n'est pas si "desespéré", etc...
    Le but, c'est que ça deviennent :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    Et je dis : <span class="comment">"et il dit"</span>, que ton espoir n'est pas si <span class="comment">"desespéré</span>, etc...

    J'utilise donc la magnifique fonction preg_replace comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $txt = preg_replace("/(\".*\")/i", '"et il dit", que ton espoir n'est pas si "desespéré"', $txt);
    echo $txt;
    Et c'est pas cool, parce que ça marche pas. Il se mélange les pinceaux quand il y a plus d'un match trouvé (ici, il y en a 2).

    Ce que je cherche à faire, c'est de préciser l'expression, en signifiant qu'il faut mettre les span seulement aux éléments entre guillemets " qui ne sont pas précédés de class= "

    Alors j'ai essayé de faire des "/[^class=](\".*\")/i" ou des "/(class=)[0](\".*\")/i" mais rien n'y fait... quelqu'un a une idée ?

    merci d'avance
    Rekam

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace("/(?<!class=)\"([^\"]*)\"/", "<span class=\"comment\">\"$1\"</span>", $txt);

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Ah ben là, je suis navré de te dire que malheureusement... ça marche !

    Excellent, merci bien.

    Et du coup, je me suis dit, bêtement comme d'hab, "tiens, et si je l'adaptais pour géré la même chose, mais pour du texte entre simple quote et pas entre guillemets?".

    Eh bien force est de constater que mal m'en a pris, car je n'y arrive point, du fait que je ne comprend pas la syntaxe que tu as fournie (mais qui fonctionne et qui, d'ailleurs, et très belle à regarder, au demeurant)

    Que faut-il changer pour le texte entre simple-quote, du coup ?

    remerci!
    re rekam

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Sans tester, je dirais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace("/(?<!class=)'([^']*)'/", "<span class=\"comment\">'$1'</span>", $txt)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Ouai, ben visiblement, je suis pas encore au point au niveau prog...

    Bref, toujours est-il que t'as bien fait de pas tester, t'aurais perdu ton temps, ça marche nickel

    Merci trop

    rekam

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

Discussions similaires

  1. supprimer texte entre deux balises specifiques
    Par HurtMarley dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2006, 18h30
  2. [MySQL] sql et texte avec guillemets
    Par licorne dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 24/12/2005, 21h49
  3. récupération texte entre <option> et </option>
    Par Trunks dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/09/2005, 14h19
  4. [SAX] Problème SAX lecture du texte entre les balises
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 07/07/2005, 17h24
  5. Agir sur le texte entré dans un éditeur
    Par FatalError dans le forum C++
    Réponses: 1
    Dernier message: 24/10/2004, 14h54

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