récuperer la position d'une expression et son contenu

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 : récuperer la position d'une expression et son contenu

par zeus » 05 janv. 2007, 09:15

Pour utiliser une expression régulières avec preg_match_all(), il faut poser des délimiteurs autour de ton pattern ;)

Généralement, on utilise / ou # ;)

par Khorne_fr1 » 05 janv. 2007, 01:45

J'ai trouvé au hasard d'un newsgroup, pour les gens qui pourraient avoir la meme erreur, voici la bonne version du pattern pour la fonction en question:

Code : Tout sélectionner

preg_match_all("/\(VAR([0-9]+)\)/", $string, $out);

par Khorne_fr1 » 05 janv. 2007, 01:30

Merci beaucoup j'avais pas pensé a cette fonction.


Par contre je ne comprend pas, mon pattern (avec ou sans tes parentheses capturantes) me donne l'erreur suivante pour la fonction preg_match_all():

Warning: Delimiter must not be alphanumeric or backslash in

Mon code:

Code : Tout sélectionner

preg_match_all("\(VAR([0-9]+)\)", $string, $out);

par zeus » 04 janv. 2007, 18:22

Si tu utilises les expressions régulières, les parenthèses sont capturantes.

par exemple, à partir de ton pattern, "\(VAR([0-9]+)\)" va capturer le nombre et si tu utilises une fonction comme preg_match_all() va te permettre de le récupérer ;)

récuperer la position d'une expression et son contenu

par Khorne_fr1 » 04 janv. 2007, 16:12

Bonjour,

le contenu (strings) d'une variable contient des expressions régulières de ce type: "\(VAR[0-9]+\)" ex: http://(VAR19)

Je cherche un moyen de récupérer la position de ses expressions dans la chaine en question et surtout de récupérer la valeur numérique contenu dans l'expression (dans mon exemple le 19).

Merci pour votre aide,