ckuron 0 Posté(e) le 31 décembre 2005 Partager Posté(e) le 31 décembre 2005 Bonjour a tous ! Petite question, j'ai une page php qui fait une requete http et qui parse le retour. Pour separer le header du content je voudrais utiliser une regexp, mais ca marche pas a tous les coup. Bien sur les / sont des dans mon code, mais le forum il aime pas trop que je mette des Voila, normalement ca devrait marcher, mais ca marche pas , ma regexp me renvoi comme premier match le header + le content et en second match le content seulement. Lien à poster
puck 0 Posté(e) le 2 janvier 2006 Partager Posté(e) le 2 janvier 2006 Quand tu dis regexp tu parle bien des expressions régulieres ? Si oui je comprend pas trop ta regex, donc les / c'est des point d'exclamation ? Lien à poster
historien 0 Posté(e) le 2 janvier 2006 Partager Posté(e) le 2 janvier 2006 Ben non c'est des antislashs. Lien à poster
puck 0 Posté(e) le 2 janvier 2006 Partager Posté(e) le 2 janvier 2006 Ben si c'est des antislashs, je reconnais pas les regexs parce qu'elles sont fausse une regex ça fonctione avec des ! Edit: Après verification, je me suis trompé. Désolé. Lien à poster
historien 0 Posté(e) le 2 janvier 2006 Partager Posté(e) le 2 janvier 2006 $texte = preg_replace('#[ img](.*?)[/img]#', '', $texte); >) ils sont où les "!"? Et cette regxp marche . Lien à poster
fragmonster 1 Posté(e) le 6 janvier 2006 Partager Posté(e) le 6 janvier 2006 Disons que, si je comprends bien ta regexp, tu prends tout (d'où le (.*) ) suivit de deux retours chariots (/r/n/r/n) puis tout le reste après (encore (.*)). Tu peux nous donner un exemple de chaine de retour? Juste pour pouvoir vérifier Lien à poster
Wizmaster 0 Posté(e) le 6 janvier 2006 Partager Posté(e) le 6 janvier 2006 Essaie : preg_match("/(.*?)/r/n/r/n(.*)/s", $buf, $arr); Pourquoi ? By default, the quantifiers are "greedy", that is, they match as much as possible (up to the maximum number of permitted times), without causing the rest of the pattern to fail. The classic example of where this gives problems is in trying to match comments in C programs. These appear between the sequences /* and */ and within the sequence, individual * and / characters may appear. An attempt to match C comments by applying the pattern /*.**/ to the string /* first comment */ not comment /* second comment */ fails, because it matches the entire string due to the greediness of the .* item.However, if a quantifier is followed by a question mark, then it ceases to be greedy, and instead matches the minimum number of times possible, so the pattern /*.*?*/ does the right thing with the C comments. The meaning of the various quantifiers is not otherwise changed, just the preferred number of matches. Do not confuse this use of question mark with its use as a quantifier in its own right. Because it has two uses, it can sometimes appear doubled, as in d??d which matches one digit by preference, but can match two if that is the only way the rest of the pattern matches. Donc imaginons la chaine "bbaccadd" si je match contre "(.*)a(.*)", la première parenthèse capturante trouvera : [bbacc]add (la plus grande capture) [bb]accadd Elle est gourmande (greedy) Si par contre je prends "(.*?)a(.*)", elle ne trouvera que [bb]accadd Lien à poster
Messages recommandés