Regexp so legit

Remue méninge sur un extracteur générateur de liens pour des Codes en code.

Voilà donc un petit chunck de mon affreux linker par regex:
foreach $natty (‘décret’,’loi’,’ordonnance’) {
     (@possibles) = $text =~ /($natty[^<>]{1,21}\d\d\-\d+)/g;
     foreach $possible (@possibles) {
        $text =~ s/([^=>])$possible([^<« ])/$1<a href= »http:\/\/perlpot.net\/cgi-bin\/r.cgi\?what=$possible » shape= »exxo$natty »>$possible<\/a>$2/;
     }
}
 
Reste donc à écrire le r.cgi qui répond.
#!/usr/bin/perl
use CGI;
use WWW::Mechanize;
$q = new CGI;
($natty,$numb) = $q->param(‘what’) =~ /(.*?)\s.*?(\d\d\-\d+)/;
$natty =~ s/\W/./g;
$www = new WWW::Mechanize;
$www->get(‘http://www.legifrance.gouv.fr/initRechTexte.do’);
$www->form_number(1);
($opt) = grep { $_ =~ /$natty/i } $www->content =~ /<option value= »(.*?) »/g;
$www->field(‘champNatureTexte’,$opt);
$www->field(‘champNumTexte’,$numb);
$www->submit();
($url) = $www->content =~ /<li class= »resultat1″>.*?href= »(.*?) »/s;
$url =~ s/^\.\/\./http:\/\/legifrance.gouv.fr/;
print « Location: $url\n\n »;
OK ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *