Из файла извлечь RU слова

Discussion in 'Болталка' started by Hapk, 4 Sep 2012.

  1. Hapk

    Hapk Banned

    Joined:
    3 Jun 2011
    Messages:
    290
    Likes Received:
    42
    Reputations:
    -5
    Как из текстового документа извлечь только русские слова?

    в текстовике записано вот так

    вася
    vasay
    петя
    маша
    паша
    masha
    света
    peta

    нужно отделить только русские слова
     
  2. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,032
    Likes Received:
    1,320
    Reputations:
    327
    bool is_russian_ansi(char *str)
    {
    bool rc = true;

    strupr(str);

    while(*str)
    {
    if(*str < 'А' || *str > 'Я')
    {
    rc = false;
    break;
    }
    str++;
    }

    return rc;
    }


    логика думаю ясна.
     
    #2 sn0w, 4 Sep 2012
    Last edited: 4 Sep 2012
  3. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    Code:
    cat list.txt | perl -ne 'print if /[А-я]+/'
    
    только локаль в перле прописать русскую (лень искать)
     
  4. Hapk

    Hapk Banned

    Joined:
    3 Jun 2011
    Messages:
    290
    Likes Received:
    42
    Reputations:
    -5
    А что это за код? я же не шарю что с этим делать
     
  5. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    командная строка bash.
    когда нужно что-то распарсить, заливаю файл на любой *nix-сервак и препарирую его инструментами bash/perl/sed/awk. получается быстро и эффективно.
    В более запущенных случаях (когда файл большой), использую импорт в sqlite и манипулирую на SQL-языке
    чего и всем рекомендую.
     
  6. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    1-е действие:
    notepad++ -> Ctrl+h:
    Найти: [A-Za-z].*
    Заменить на: (пробел)
    ....
    Режим поиска - Регулярное выражение
    ----------------------------------------------------
    2-е действие:
    notepad++ -> Ctrl+h:
    Найти: (пробел)\r\n
    Заменить на: (нулевая строка)
    ....
    Режим поиска - Расширенный
     
  7. fl00der

    fl00der Moderator

    Joined:
    17 Dec 2008
    Messages:
    1,026
    Likes Received:
    311
    Reputations:
    86
    В RegExFilter от allknower есть готовый фильтр для убийства строк, содержащих что-либо, кроме русских слов.
     
    _________________________
  8. Hapk

    Hapk Banned

    Joined:
    3 Jun 2011
    Messages:
    290
    Likes Received:
    42
    Reputations:
    -5
    Всё спасибо ребятишки
    я разобрался))