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 multiple dans un même texte [RegEx]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 33
    Points : 27
    Points
    27
    Par défaut Regex multiple dans un même texte
    Bonjour,
    Je fais appel à vous pour un problème d'expression régulière.

    Voici mon texte :
    Existe aussi madeleines 500 g + 10% gratuites ou + 200g offert
    Il faut que je mette des balises <Rouge></Rouge> autour du ou des textes suivants :
    + ... gratuit(e)(s)
    + ... offert(e)(s)
    Il peut y en avoir plusieurs en même temps dans le texte (comme sur l'exemple).

    Résultat :
    Existe aussi madeleines 500 g <Rouge>+ 10% gratuites</Rouge> ou <Rouge>+ 200g offert</Rouge>
    J'arrive actuellement à identifier un seul cas avec l'expression suivante :
    \+(.*)?gratuit[e|s]*
    Je pense ne pas être loin mais je bloque...

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $str=preg_replace('/(\+.*?(?:gratuit|offert)e?s?)/i', '<rouge>$1</rouge>', $str);

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Merci Eric2a pour ta réponse.
    Ça fonctionne bien en PHP, je viens de faire un test.
    Par contre, j'ai voulu transposé dans l'outil Filemaker et là ça ne fonctionne pas...
    Les expressions régulières ne doivent pas être gérer tout à fait de le même manière.
    En tout cas, merci pour la piste, je vais continuer dans ce sens là.

    Juste une précision :
    - quelle est la signification du / au tout début et à la fin dans /i?

    Merci

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Après une petite modif, ça fonctionne nickel également sur Filemaker :-)
    Merci
    Si j'ai une autre question regex, je peux la mettre ici ou ouvrir un nouveau sujet?

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par tete-jaune Voir le message
    - quelle est la signification du / au tout début et à la fin dans /i?
    Les / sont les délimiteurs du motif. Il faut faire attention à ne pas utiliser comme délimiteur un caractère présent dans le motif. Genre si tu fais une regex sur une url, tu vas probablement avoir plein de / dedans, donc il vaudra mieux utiliser autre chose comme délimiteur
    Le i après le / est un modificateur qui précise que le motif que tu utilises est insensible à la casse.

    Et si tu as une nouvelle question sur une autre regex, mieux vaudrait ouvrir un nouveau sujet (et au passage, cliquer sur pour clore celui-ci)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Merci pour ces précisions.
    Je continue de chercher de mon côté sur une autre problématique et si je bloque vraiment, je posterai un nouveau sujet demain.

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

Discussions similaires

  1. Variable multiple dans une même colonne
    Par dbaxime dans le forum QlikView
    Réponses: 5
    Dernier message: 13/08/2013, 18h49
  2. INNER JOIN multiple dans la même table ?
    Par Paulux1 dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/02/2013, 14h15
  3. [RegEx] Regex multiples dans une portion de texte uniquement
    Par tete-jaune dans le forum Langage
    Réponses: 7
    Dernier message: 21/09/2011, 11h18
  4. Réponses: 8
    Dernier message: 06/12/2007, 15h30
  5. Réponses: 6
    Dernier message: 14/06/2006, 16h02

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