1. Perl / Говнокод #5113

    −122

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    sub translateToSearch {
            my($search)=@_;
            $search =~ s/\ /\*/g;
    
            my $s_up=to_upper($search);
            my $s_low=to_lower($search);
    
    
            my $s="";
            my $last_s="";
            for($i=0;$i<length($search);$i++) {
                    my $ch=substr($search,$i,1);
                    if(!($ch eq "*")) {
                            $s.="[".substr($s_up,$i,1).substr($s_low,$i,1)."]";
                    } elsif( !($last_s eq "*")) {
                            $s.=".*";
                    }
                    $last_s=$ch;
            }
    
            return $s;
    }

    Функция ловеркейзит строку.

    Запостил: tanenn, 30 Декабря 2010

    Комментарии (6) RSS

    • нет, не ловеркейзит.
      Ответить
      • Но всё равно очень грязно. Необходимые символы не эскейпит, а если искать всю строку, то можно просто добавить флаг.
        Ответить
    • тут не ловеркейс, а подготовка выражения для поиска, возможно регулярки. "abcd" => "[Aa][Bb][Cc][Dd]"
      но кривовато как-то...
      Ответить
      • "]" => ?
        "^" => ?
        Ответить
      • > но кривовато как-то...

        и очень очень кривовато. вся функция делает вот это, если не ошибаюсь:
        $string =~ s/([^*])/"[".uc($1).lc($2)."]"/ge;
        $string =~ s/\*/.*/g;


        незнание сучествования оператора ne - или того же split //; оба продокуметированы - уже заставляет задуматся.
        Ответить
    • Где здесь С++?
      Ответить

    Добавить комментарий