fork(2) download
  1. use 5.016;
  2. use utf8;
  3. use encoding "utf8";
  4.  
  5. my @blacklist = (
  6. 'суика', 'шлюика', 'кна?иве?с', 'гнид(ану)?с',
  7. );
  8.  
  9. my %t = (
  10. а => 'аa', б => 'б6', в => 'вb', г => 'гr',
  11. д => 'д', е => 'еeё', ж => 'ж', з => 'з3',
  12. и => 'ий', к => 'кk', л => 'л', м => 'мm',
  13. н => 'нh', о => 'оo0', п => 'п', р => 'рp',
  14. с => 'сc', т => 'тt', у => 'уy', ф => 'ф',
  15. х => 'хx', ц => 'ц', ч => 'ч4', ш => 'шщw',
  16. э => 'э', ю => 'ю', я => 'я9', ь => 'ьъы6b',
  17. );
  18.  
  19. s/(.)/(exists $t{$1} ? "(?:[$t{$1}][\\s\\p{punct}]*)" : $1)/ge for @blacklist;
  20.  
  21. for my $t (map { chomp; utf8::decode($_); $_ } <>) {
  22. $t =~ s/[^\p{ascii}\p{cyrillic}]/!/gi;
  23. print $t;
  24. for my $r (@blacklist) {
  25. print " !!!" if($t =~ m/$r/xi);
  26. }
  27. print "\n";
  28. }
Success #stdin #stdout 0.04s 4988KB
stdin
суйка
новостух
суй ка
жилбисосака
с.уй-ка
гни.дс
кни-вес
пидормеха
stdout
суйка  !!!
новостух
суй ка  !!!
жилбисосака
с.уй-ка  !!!
гни.дс  !!!
кни-вес  !!!
пидормеха