Анализ текста

Remart

Client
Регистрация
06.10.2016
Сообщения
52
Благодарностей
10
Баллы
8
Други, всем доброго здравия! Буду краток и благодарен за любую помощь.

1. Есть переменная А, содержащая текст.
2. В этом тексте есть слово (переменная B).
3. Мне нужно посчитать либо в словах (пробелах), либо в символах, сколько от начала текста лучше слов или символов до переменной B

Нужен код для C#

Пример
А = "мама мыла раму"
В = "рам"
Результат - количество слов до В, т.е. 2

Заранее благодарствую
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 066
Благодарностей
8 957
Баллы
113
Нужен код для C#

Пример
А = "мама мыла раму"
В = "рам"
Результат - количество слов до В, т.е. 2
Можно таким образом:
C#:
string text = project.ExecuteMacro(project.Variables["text"].Value);
string result = Macros.TextProcessing.Replace(text, @"\s+" + project.Variables["key"].Value +".+", "", "Regex", "First");
return result.Split(' ').Length;
Где в переменной {-Variable.text-} должен содержаться исходный текст (мама мыла раму), а в переменной {-Variable.key-} слово до которого считать слова (рам).
 
Последнее редактирование:
  • Спасибо
Реакции: djaga и doc

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 421
Баллы
113
варик покороче
C#:
string A = "мама мыла раму";
string B = "рам";
return A.Split(' ').TakeWhile(x=>!x.Contains(B)).Count();
 
  • Спасибо
Реакции: Sergodjan

Remart

Client
Регистрация
06.10.2016
Сообщения
52
Благодарностей
10
Баллы
8
Парни, благодарю, работают оба варианта, НО считает до последнего вхождения, т.е.
мама мыла раму рам рам
Результат 5, а нужен результат 3.

+

параллельно можно ли тогда посчитать количество переменной В в А.
Результат должен быть 3 (я это сделал через подсчет строк, но вдруг через С# работать быстрее будет)

Спс. Надо бы изучить С#, хотя бы работу с переменными и циклами...
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 066
Благодарностей
8 957
Баллы
113
Парни, благодарю, работают оба варианта, НО считает до последнего вхождения, т.е.
мама мыла раму рам рам
Результат 5, а нужен результат 3.
Возможно, между словами есть более одного пробела подряд?
 

Remart

Client
Регистрация
06.10.2016
Сообщения
52
Благодарностей
10
Баллы
8

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 066
Благодарностей
8 957
Баллы
113

Remart

Client
Регистрация
06.10.2016
Сообщения
52
Благодарностей
10
Баллы
8
А скинь скрин .. у меня вот
81129
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 066
Благодарностей
8 957
Баллы
113
  • Спасибо
Реакции: Remart

Remart

Client
Регистрация
06.10.2016
Сообщения
52
Благодарностей
10
Баллы
8
Вдруг кому-то пригодится, решил проблему другим способом через символы.

1. Подсчет количества символов text (длинна строки)

string A = project.ExecuteMacro(project.Variables["text"].Value);
int strLen = A.Length;
return strLen;

2. Считаем символы до 1 совпадения key в text
string A = project.ExecuteMacro(project.Variables["text"].Value);
string B = project.ExecuteMacro(project.Variables["key"].Value);
return A.IndexOf(B);
 
  • Спасибо
Реакции: Viktor111

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