2009/5/15 Ze lo <[email protected]> > > Bonjour à tous > Je travail actuellement sur une application ror et j'ai un petit souci > j'ai une variable qui contient le code html de ma page et je souhaiterai > récupérer ce qu'il se trouve entre <body> et </body> > J'ai donc voulu utiliser une regex : > BODY_PATTERN = /<body.*<\/body>/m > ... > h = BODY_PATTERN.match(h)[0] > > me renvoi une erreur undefined method `[]' for nil:NilClass > > pourtant en affichant h juste avant, j'ai bien un <body> et </body> > PS: J'ai l'impression que ceci fonctionnerai si tout le code html était > sur une seul ligne car j'ai lu sur un autre forum et avec un autre > langage que le caractère saut de ligne n'est pas reconnu dans "."
Oui, ton impression est correct. Tu a besoin de multiple-ligne regexen, et u utilise /m aussi. Ça c'est bien et ça marche pour moi. J'avais mis les la parenthèses ici et j'avais changé l'index. ([0] est le resultat complet: http://www.ruby-doc.org/core/classes/MatchData.html body = "<body>test \nheh</body>" BODY_PATTERN = /<body>(.*)<\/body>/m puts BODY_PATTERN.match(body)[1] Output: 1 2 test heh Essayez de changer cela avec vos données réelles. http://codepad.org/6UsVTgZO --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected] -~----------~----~----~----~------~----~------~--~---
