Portál AbcLinuxu, 19. března 2024 12:24
my $promena="tady ne nejaky text. a tady se vyskytuje hambaty slovo V I A G R A ktere se snazi maskovat";
my $promena="tady ne nejaky text. a tady se vyskytuje hambaty slovo VIAGRA ktere se snazi maskovat";
echo "a ja bych potreboval odhalit maskovane slovo V I A G R A samoyrejme se takto muze maskovat vice slov (p o r n o, c a s i n o,....) Dokazal by nekdo vymyslet regularni vyraz,ktery by odhalil maskovana slova s mezerou?" | \ grep -o -P '\b(\S\s){3,}\S\b' V I A G R A p o r n o s i n o
$veta =~ s/|\grep -o -P '\b(\S\s){3,}\S\b'//g;
$veta="nejaky text PORNO zase nejaky text";
Nevedel by prosim nekdo jak to upravit? Aby se zmenil obsah promene $veta?
A aby se spamove slovo nedavalo do $1 ? Diky moc :)
kod:
#!/usr/bin/perl
my $veta="nejaky text P O R N O zase nejaky text";
$veta =~ s/(\b(\S\s){3,}\S\b)/print $1, "\n";""/ge;
print $veta;
vysledek:
delli:~/perl/# ./mezera.pl
P O R N O
nejaky text zase tetx
@banned = map { '\\b' . join ('\\W*', split //) . '\\b' } qw ( porno viagra ); for my $regex (@banned) { next unless $text =~ m/$regex/i; print "nasiel som\n"; last; }
Pokousim se udelat ochranu pred smapamem na foru,ale perl se teprve ucim a mam s nim problemy :(Na to je tohle příliš složité a nespolehlivé. Zkus zabudovat nějakou ochranu přímo do odesílacího formuláře, ale tak aby neobtěžovala uživatele. Třeba něco jako kontrolní otázku, která se javascriptem vyplní a schová. Článků na tohle téma bylo napsáno už mnoho...
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.