Expression réqulières

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 : Expression réqulières

par orgerix » 22 avr. 2009, 20:33

Arf... J'avais oublié les parenthèses...

Mais bon, ca marche pas plus...

Mais ca c'est parce que je me suis trompé dans mon masque... J'ai fais le test avec une chaine plus simple et ca marche. Je vais m'y remettre pour voir ce qui va pas.

EDIT : C'est bon. La chaine était à l'interieur du texte, donc pas de ^ et de $ Ca finira par rentrer un jour :D

par Ryle » 22 avr. 2009, 11:45

Le principe des expressions régulière est assez simple, il te faut constituer un masque, plus ou moins fin, qui va correspondre très exactement à la chaine sur laquelle tu travailles.

Il faut pour cela faire attention aux caractères spéciaux des expressions. Ainsi, tu as bien pensé à protéger les crochets avec un antislash, mais tu as oublié de le faire pour les parenthèses du Array ;)
$page = "textePage[0]['Texte'] et textePage[1] = new Array();";

ereg('^textePage\[0\]\[\'Texte\'\](.+)textePage\[1\] = new Array();$',$page,$match);
print_r($match); // => pas de résultat

ereg('^textePage\[0\]\[\'Texte\'\](.+)textePage\[1\] = new Array\(\);$',$page,$match);
print_r($match); // => Array ( [0] => "textePage[0]['Texte'] et textePage[1] = new Array();" [1] => " et ")

Expression réqulières

par orgerix » 21 avr. 2009, 08:49

Bonjour,

J'ai un texte et j'aimerai obtenir la parti du texte qui se trouve entre chaines. J'aimerai me débrouiller avec les expressions régulières pour (enfin) apprendre à les maitriser, mais bon, c'est pas gagné...

VOila, dans mon texte, je veux prendre ce qui se trouve entre textePage[0]['Texte'] et textePage[1] = new Array();

J'ai donc fait ca
ereg('^textePage\[0\]\[\'Texte\'\](.+)textePage\[1\] = new Array();$',$page,$match);
Mais mon expression ne détecte rien du tout... $match reste vide.