aide pour isoler une valeur d'une expression régulière

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : aide pour isoler une valeur d'une expression régulière

par Ryle » 03 déc. 2007, 21:49

les fonctions preg_replace() (pour remplacer) ou preg_match() (pour capturer) seraient à mon avis plus adaptées à ce que tu veux faire...

Quant au masque, commence simplement, tu veux récupérer la partie "titre-a-saisir" de ton exemple, qui sera constitué de n'importe quels caractères (représenté par le point), pouvant apparaitre de 0 à n fois (représenté par l'étoile), ce qui te donne ceci :
#\[!menu=(.*)\]#
Adapte ensuite, étape par étape si tu veux effectivement autoriser des espaces en plus dans cette chaine, si tu veux modifier la cardinalité en la passant de 1 à N au lieu de 0, etc..

aide pour isoler une valeur d'une expression régulière

par Danny Coulombe » 03 déc. 2007, 17:26

Bonjour,

J'ai un problème à la fois simple et compliqué (pour moi). J'essais d'isoler une valeur dans une expression régulière.

Le (.+?) de mon expression /\[ *!menu *= *(.+?)\]/si , doit isoler la valeur entré dans [!menu=***]. Bref, je désire trouvé la fonction qui me permettrai d'entré ces valeurs dans une variable dynamique.

Voici ce que j'utilise pour le moment (non fonctionnel):
$text = "Bonjour toi, bienvenue sur [!menu=titre-a-saisir]. Est-ce que ça marche?";

$check = array();
$check = preg_split("\[ *!menu *= */si",$text);
Merci beaucoup de votre aide, je suis désespéré!!