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 :

début/fin de chaine en capture 0 [RegEx]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club Avatar de KOogar
    Inscrit en
    Septembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 46
    Points : 39
    Points
    39
    Par défaut début/fin de chaine en capture 0
    bonjour

    ceci fonctionne nickel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte =  preg_replace("/mot/" , "<b><font color=\"#000000\">\\0</font></b>", $texte);
    mais des que je met debut et fin de chaine ^$ je ne capture plus rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte =  preg_replace("/^mot$/" , "<b><font color=\"#000000\">\\0</font></b>", $texte);
    c'est embetant ca, quelqu'un pour m'aider ?

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 327
    Points : 15 670
    Points
    15 670
    Par défaut
    montre nous des exemples de textes sur lesquels tu lance la recherche ainsi que les résultats que tu aimerai avoir

  3. #3
    Nouveau membre du Club Avatar de KOogar
    Inscrit en
    Septembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 46
    Points : 39
    Points
    39
    Par défaut
    ah ok, j'ai du mal m'exprimer, je re :

    1 cas cela fonctionne, ca capture bien la chaine "mot"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $texte = "les motivation, le mot et les phrases";
    $texte =  preg_replace("/mot/" , "<b><font color=\"#ff0000\">\\0</font></b>", $texte);
    echo $texte;
    ?>
    2 cas, quand je met debut et fin de chaine, aucune capture ne se fait !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $texte = "les motivation, le mot et les phrases";
    $texte =  preg_replace("/^mot$/" , "<b><font color=\"#ff0000\">\\0</font></b>", $texte);
    echo $texte;
    ?>
    que ce passe til au juste ?

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    les caractères "/" représentent déjà le début et la fin de ton expression rationnelle.

  5. #5
    Nouveau membre du Club Avatar de KOogar
    Inscrit en
    Septembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 46
    Points : 39
    Points
    39
    Par défaut
    euh non, puisque dans la premier cas cela capture les 2 chaines

    les motivation, le mot et les phrases

    et des que je met les debut et fin de chaine; plus de capture du tout

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Oui, et c'est normal. Avec les ancres de début et fin de chaîne, ça revient à comparer si la chaîne à laquelle est appliquée le motif est exactement "mot" ou non.

    Si votre but est de rechercher le terme "mot" et non ceux qui le contiennent (comme "motivation"), il faut se tourner, par exemple, sur le délimiteur de mot : \b.

  7. #7
    Nouveau membre du Club Avatar de KOogar
    Inscrit en
    Septembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 46
    Points : 39
    Points
    39
    Par défaut
    Gros Merci julp

    Fonctionne nickel

    je met comment il s'utilise pour ceux que ca intéresse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $texte = "les motivation, le mot et les phrases";
    $texte =  preg_replace("/\bmot\b/" , "<b><font color=\"#ff0000\">\\0</font></b>", $texte);
    echo $texte;
    ?>
    ce qui donne:
    "les motivations, le mot et les phrases"

  8. #8
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Juste pour info et si c'est pour un moteur de recherche il est préférable d'encapsuler les mots capturés dans une balise <strong/> afin d'accentuer leur valeur sémantique.

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

Discussions similaires

  1. [RegEx] Début et fin de chaine optionnel ?
    Par tintin72 dans le forum Langage
    Réponses: 13
    Dernier message: 28/07/2011, 13h56
  2. comment supprimer des espaces en début et fin de chaine
    Par thor76160 dans le forum Langage
    Réponses: 2
    Dernier message: 19/03/2010, 10h08
  3. [AJAX] IE coupe début et fin de chaine
    Par julien.63 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/07/2006, 17h39
  4. Supprimer les espaces en fin de chaine.
    Par KneXtasY dans le forum C
    Réponses: 5
    Dernier message: 26/12/2005, 10h33
  5. Suppression des blancs en fin de chaine
    Par Spyco dans le forum C
    Réponses: 4
    Dernier message: 22/12/2005, 15h13

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