Посчитать количество ключей в тексте

hameleonds

Client
Регистрация
04.10.2015
Сообщения
63
Благодарностей
0
Баллы
6
И снова привет) Тыкните пожалуйста носом может где-то было, (не могу найти), мне нужно посчитать количество слов в тексте по ключу, т.е. если ключ - Малинка), то нужно посчитать сколько слов "малинка" в тексте, желательно так что бы он считал слова совпадения как в верхнем так и нижнем регистре), буду очень благодарен.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
парсите текст ключем
(?i)малинка
Все совпадения в список. Потом получаете количество строк в списке.
 

hameleonds

Client
Регистрация
04.10.2015
Сообщения
63
Благодарностей
0
Баллы
6
парсите текст ключем
(?i)малинка
Все совпадения в список. Потом получаете количество строк в списке.
я так и сделал), просто думал что можно на C# для уменьшения количества экшенов.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
Можно конечно. На C# всё можно сделать.
Только как Вы это сделаете, если не можете?
Учите код и делайте. В этой задаче нет ничего сложного, всего то там пара методов.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
Решение (скопированное из в какой-то из тем форума).
Но считать оно будет по количеству строк.
Если же нужно именно по количеству слов - то наверно придется разбить еще каждую строку по разделителю в новый список, и выполнить этот же цикл поиска.

C#:
var count=0;
var slovo= project.Variables["slovo"].Value; // Слово, по которому будем искать совпадения
var list= project.Lists["list"]; // Получаем список, в котором будем искать

// Блокируем лист на момент выполнения
lock(SyncObjects.ListSyncer) {

// ищем в каждой строчке в списке
    for(int i=0; i < list.Count; i++) {
       var str = list[i]; // читаем строку из списка

        // проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
        if (str.Contains(slovo)) {
           count++
        }
   }
}
return count; // возвращаем количество строк в которых найдено совпадение
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113

Vass

Client
Регистрация
03.02.2014
Сообщения
79
Благодарностей
10
Баллы
8
А как сделать что ключ можно было с любым регистром?

подсказали из скайпа
RegexOptions.IgnoreCase третьим параметром
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)