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 :

Expressions régulieres [Tutoriel] [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Par défaut Expressions régulieres
    Bonjour,

    je souhaite au sein d'un texte rechercher plusieurs entrées d'un lexique afin d'y mettre un bold <b>mon entrée</b>.

    Lorsque les entrées sont différentes, il n'y a pas de souci.

    Mon probleme est lorsque qu'une entrée est contenu dans l'autre.
    Exemple :
    Audit
    Audit interne

    Comment éviter le double balisage : <b><b>Audit</b> interne </b> ?

    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    c'est le gros problème quand tu parses du texte... ( trés connu dans les BBCodes )

    aprés il y a des options si tu veux prendre que certaines occurences mais reste à savoir si c'est aléatoire l'imbrication...

    [EDIT]

    bienvenue a toi crazymickey

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Tu cherches d'abord "Audit interne", tu remplaces, puis après tu continues ta recherche à partir de la position à laquelle le mot finit.

    preg_replace('/Audit interne|Audit/', '<b>$0</b>', $str) devrait pouvoir le faire.

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Par défaut
    Merci de ta réponse !

    Pourrais-tu détailler et me donner quelques bouts de code car je ne maitrise pas trop les expr reg.

    Je pensais rechercher l'expression de "Audit interne" dans son intégralité et rechercher "Audit" comme cela Audit[^( interne)]
    Qu'en penses tu ?

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Je pensais rechercher l'expression de "Audit interne" dans son intégralité et rechercher "Audit" comme cela Audit[^( interne)]
    Qu'en penses tu ?
    Quel intérêt ?
    Ma solution ne fonctionne pas ?

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Par défaut
    Désolé les post s'étaient croisés !

    Si si t'as soluce marche... comment la rendre non case-sensitive ?

    Merci

  7. #7
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    tu rajoutes un i après le deuxième /.

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Par défaut
    Merci encore !

    Donc je mets :
    preg_replace('/Audit interne|Audit/'i, '<b>$0</b>', $str)

    Mon autre question est savoir quelle occurence a été trouvé ?
    Car à vrai dire, je dois mettre des balises <a> (au lieu du <b>) et donc y mettre un href en fct que ce soit "Audit interne" ou "Audit" !

    Merci

  9. #9
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Donc je mets :
    preg_replace('/Audit interne|Audit/'i, '<b>$0</b>', $str)
    Perdu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('/Audit interne|Audit/i', '<b>$0</b>', $str)
    Il suffit pourtant d'un peu de bon sens...

    Mon autre question est savoir quelle occurence a été trouvé ?
    L'occurence est dans $0.
    Si tu as besoin de faire des manipulations tu peux transformer ton preg_replace en preg_replace_callback

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

Discussions similaires

  1. [Debutant] Expression réguliere
    Par grizzz dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 17/08/2007, 16h14
  2. expression réguliere
    Par htristra dans le forum C
    Réponses: 11
    Dernier message: 06/09/2005, 22h33
  3. expression réguliere en c++
    Par alambics dans le forum MFC
    Réponses: 9
    Dernier message: 10/03/2004, 20h19
  4. expression réguliere
    Par alambics dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/03/2004, 13h52

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