Portál AbcLinuxu, 15. července 2025 09:23


Dotaz: per - práce s textem. s l o v o => slovo

16.1.2008 19:32 motorcb | skóre: 12
per - práce s textem. s l o v o => slovo
Přečteno: 401×
Odpovědět | Admin
Zdravim.
Pokousim se vyresit nasledujici problem:

my $promena="tady ne nejaky text. a tady se vyskytuje hambaty slovo V I A G R A ktere se snazi maskovat";

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?

my $promena="tady ne nejaky text. a tady se vyskytuje hambaty slovo VIAGRA ktere se snazi maskovat";

Dekuji za jakekoliv nakopnuti :)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Honza Balák avatar 16.1.2008 19:37 Honza Balák | skóre: 23 | blog: Jaxův linuxový zápisník | Předklášteří
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co takhle pomocí reg. výrazu vymazat všechny mezery a potom testovat přítomnost nežádoucích slov...?
<null>
16.1.2008 20:14 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
Ja nemam predem dano,jake to budou slova. Melo by to byt univerzalni aby to poznalo jak S E X , P E N I S, P O R N O. Aby to proste slepilo vsechny pismena mezi kterema je mezera, ale at zkousim co zkousim,nemohu to vyresit :(
16.1.2008 20:29 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
Odpovědět | | Sbalit | Link | Blokovat | Admin
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
16.1.2008 20:40 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
V perlu by to mozne nebylo? :)
16.1.2008 21:13 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
Chtěl jste perlový regulární výraz, ten tam je. Nebo tu chcete návod na operátory // a =~?
17.1.2008 13:52 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
Bohuzel,tento kus kodu zadnou zmenu s vetou neudela :( Nebo jsem to spatne zapsal?! Diky,uz jsem z toho fakt na prasky :(

$veta =~ s/|\grep -o -P '\b(\S\s){3,}\S\b'//g;
17.1.2008 15:18 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
$veta =~ s/(\b(\S\s){3,}\S\b)/print $1, "\n";""/ge;
18.1.2008 00:00 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
Pokousim se udelat ochranu pred smapamem na foru,ale perl se teprve ucim a mam s nim problemy :(

Treba ted to funguje dobre,ale me by se hodilo kdyby to predelalo tu promenou a nechalo v ni data. Aby vysledek promene byl:
$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
18.1.2008 09:14 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
skúste na to ísť zo známeho zoznamu hľadaných slov
@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;
}
Josef Kufner avatar 18.1.2008 10:56 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
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...
Hello world ! Segmentation fault (core dumped)
Josef Kufner avatar 17.1.2008 21:22 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
Odpovědět | | Sbalit | Link | Blokovat | Admin
To se snažíš implementovat spamassassin?
Hello world ! Segmentation fault (core dumped)
Honza Balák avatar 17.1.2008 23:32 Honza Balák | skóre: 23 | blog: Jaxův linuxový zápisník | Předklášteří
Rozbalit Rozbalit vše Re: per - práce s textem. s l o v o => slovo
Na mě to působí jako pokus o ochranu webového fóra...
<null>

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.