|
|
|
|
Bonjour ici !
J'aurais aimé savoir s'il était possible en Perl de construire des expressions régulières de façon générique. Je m'explique :
J'ai par exemple la phrase "Bonjour le monde. Phrase2. Phrase3", que je split par .
puis je split à nouveau avec
my @tab = split(/\s+/, $phrase);
J'ai donc les mots de la phrase "Bonjour le monde" dans le tableau tab.
Je voulais savoir si on pouvait construire le regexp m/.{0,30?}?$tab[0].{0,30?}?$tab[1].{0,30?}?$tab[2]...{0,30?}?$tab[TAILLE_DU_TABLEAU]./ sachant que je compte faire une boucle pour passer à la phrase suivante c'est à dire phrase2, etc...
Voilà, je suis pas très clair mais si quelqu'un pouvait m'éclairer.
Configuration: Linux Firefox 2.0.0.12
J'ai un texte T1 contenant n phrases. Chaques phrases contient un nombre de mots.
|
Salut,
lami20j@debserv:~/trash$ cat kyo.pl
#!/usr/bin/perl
use strict;use warnings;
my @phrase = split /\./,<DATA>;
my @plagiat = qx/cat text2/;
pop @phrase;
foreach my$e(@phrase){
my @reg = split /\s+/,$e;
my $regex_ = join " ", @reg;
my $regex = qr{$regex_};
print "*** $regex_ *** est un plagiat dans le fichier text2\n"
if (grep { m/$regex/ } @plagiat);
}
__END__
Bonjour le monde.Hello world.Il fait beau aujourd'hui.
lami20j@debserv:~/trash$ cat text2
Il fait beau aujourd'hui.
Un autre text.
lami20j@debserv:~/trash$ perl kyo.pl
*** Il fait beau aujourd'hui *** est un plagiat dans le fichier text2
lami20j |