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 :

Expression régulière pour trouver des mots


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 42
    Points : 17
    Points
    17
    Par défaut Expression régulière pour trouver des mots
    Salut,

    j'ai une liste de mot :

    $liste_mot = Array("mot1","mot2","mot3");

    et une chaine qui contient un texte,

    je souhaiterai tester si au moins x mot de ma liste sont contenus dans ma chaine.

    Le problème c'est qu'il faut que seul le mot complet soit contenu dans la chaine.
    Par ex si mot1 = "chat", et si dans ma chaine j'ai "achat", ça doit rien comptabiliser.

    Merci

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Yo !

    pour chercher des mots... normalement c'est '<(^|[^a-zA-Z])ton_mot([^a-zA-Z]|$)>'
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 42
    Points : 17
    Points
    17
    Par défaut
    merci,
    j'ai essayé mais cela ne fonctionne pas où alors je m'y prends mal

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    $chaine = "blabla blabla mot1 blabla blabla mot2";
     
    $liste_mot = Array("mot1","mot2");
    $liste_mot_reg = Array("'<(^|[^a-zA-Z])mot1([^a-zA-Z]|$)>'","'<(^|[^a-zA-Z])mot2([^a-zA-Z]|$)>'");
     
    for ($i = 0; $i < count($liste_mot); $i++) {
        $liste_mot_remplace[] = "<a class='style'>".$liste_mot[$i]."</a>";
    }
     
    $chaine_transformee = preg_replace($liste_mot_reg, $liste_mot_remplace, $chaine);

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    pas besoin de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "'<(^|[^a-zA-Z])mot1([^a-zA-Z]|$)>'"
    , ceci suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '<(^|[^a-zA-Z])mot1([^a-zA-Z]|$)>'
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 42
    Points : 17
    Points
    17
    Par défaut
    ha oui là c'est bon,

    par contre ça supprime les espaces autour des mots,
    sauf quand le mot est en début de phrase là c'est bon,

    y a moyen d'arranger cela ?

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    dans la liste des mots remplacés, au lieu de "mot1" mets "\$1mot1\$2"
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 42
    Points : 17
    Points
    17
    Par défaut
    ça marche nickel,
    merci beaucoup.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    utilise plutot les functions comme preg_match , preg_replace et tu utilise comme motif "/\bMot1\b/i" , ca permet de ne selectionner que Mot1 , le \b indique la limite du mot !! et le i apres le / rend insensible a la casse!!

Discussions similaires

  1. [RegEx] Expression régulière pour supprimer des doublons
    Par cbroissa dans le forum Langage
    Réponses: 5
    Dernier message: 20/05/2017, 01h59
  2. [RegEx] expression régulière pour remplacer des balises
    Par oceanbigone dans le forum Langage
    Réponses: 5
    Dernier message: 29/05/2007, 18h11
  3. expression régulière pour splitter des données suivant un masque
    Par LEK dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/04/2007, 07h02
  4. Réponses: 2
    Dernier message: 27/02/2007, 09h16
  5. [RegEx] Expression régulière pour réduire des URL
    Par kivan666 dans le forum Langage
    Réponses: 6
    Dernier message: 11/06/2006, 21h39

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