Регулярка. Как после N пробела вставить слово?

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 482
Баллы
113
Есть строки текста, состоящие из 20-30 слов, между ними пробелы.
Как вставить слово в рандомный пробел, например от 3 до 25?

Или для удобства, как вставить слово в 3й пробел.

пример "ты мне нравился до смерти а я тебе а мы бы с тобой остальным а остальные"
надо получить "ты мне нравился слово до смерти а я тебе а мы бы с тобой остальным а остальные"

как?
 

patlat

Client
Регистрация
21.09.2016
Сообщения
175
Благодарностей
47
Баллы
28
можно так
Код:
            string strStart = "ты мне нравился до смерти а я тебе а мы бы с тобой остальным а остальные";

            string[] strMass = strStart.Replace(" ", ":").Split(':');

            string strFinish = null;
            for (int i = 0; i < strMass.Length; i++)
            {
                if (i == 2) strFinish += "слова ";
                else strFinish += strMass[i] + " ";
            }
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
ну тогда так
string[] strMass = strStart.Split(' ');
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 482
Баллы
113
как переменные вставить?
за место текста - {-Variable.slova-}
за место 3 - рандомное число - {-Variable.rnd-}

спасибо
 

patlat

Client
Регистрация
21.09.2016
Сообщения
175
Благодарностей
47
Баллы
28

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 482
Баллы
113
выдает ответ ОК в переменной ... выборку слов трет

 
Последнее редактирование:

patlat

Client
Регистрация
21.09.2016
Сообщения
175
Благодарностей
47
Баллы
28
как переменные вставить?
за место текста - {-Variable.slova-}
за место 3 - рандомное число - {-Variable.rnd-}

спасибо
в экшене мой код, напротив "string strStart =" кликаете правую кнопку мышки и выбипаете последнее действие "вставить значение из переменной", это будет ваша стартовая строка, тоже самое делаете с двойкой с этой части кода "(i == 2)", это ваш третий пробел, не забывайте, что отсчёт идёт от нуля
в конце кода пропишите - return strFinish;
 

patlat

Client
Регистрация
21.09.2016
Сообщения
175
Благодарностей
47
Баллы
28
  • Спасибо
Реакции: backoff

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
C#:
var strStart = "ты мне нравился до смерти а я тебе а мы бы с тобой остальным а остальные";

var slovo = project.Variables["slovo"].Value;
string[] strMass = strStart.Split(' ');
string strFinish = null;

var rnd = new Random();
int r = rnd.Next(3, 10);

for (int i = 0; i < strMass.Length; i++)
{
    if (i == r)
    {
        strFinish += slovo + " ";
    }
    else
    {
        strFinish += strMass[i] + " ";
    }
}
project.Variables["strFinish"].Value = strFinish;
return strFinish;
 
  • Спасибо
Реакции: backoff

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 482
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
ну так ты переменые пропиши в переменых, или у тебя они сами записываются
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 482
Баллы
113
да, сорри, забыл остальные поменять на нужные
работает!
Спасибо
 

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