Portál AbcLinuxu, 20. listopadu 2025 01:59
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.