Изменить каждую цифру в тексте.

atheroth

Client
Регистрация
06.06.2014
Сообщения
127
Благодарностей
17
Баллы
18
Привет всем. Делаю парсер + рерайт текста.
Не могу сделать так, чтобы в тексте каждая цифра увеличивалась на рандомное значение.

Пример:
Есть рандомная переменная, в которой сгенерировалось число 5.

Было
Жили у бабуси 2 веселых гуся. 1 белый, другой серый.

Стало
Жили у бабуси 7 веселых гуся. 6 белый, другой серый.

Синтаксис я поправлю, главное, чтобы вот так это работало.

Может кому пригодиться, потом скину готовый вариант шаблона.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Пока решение видится так:
При помощи замены после каждой цифры добавляем, например $$$. Кладём в список указывая свой разделитель $$$.
Код:
Жили у бабуси 2$$$ 
веселых гуся. 1$$$
 белый, другой серый.
Далее генерим случайное число и обрабатываем каждый элемент списка, выдергивая регуляркой и проводя сложение и склеивая строки обратно.
Останется только объединить строки.

Писал с телефона, если что, не обессудьте.
 

atheroth

Client
Регистрация
06.06.2014
Сообщения
127
Благодарностей
17
Баллы
18
Не все так просто. если бы я знал, точное количество цифр в тексте, я бы сделал. Суть в том, что в тексте, цифр может не быть вообще или быть 30 штук :-) Нужно какое-то универсальное решение :-)
И текст каждый раз будет новый, поэтому даже регулярками как пользоваться ума не приложу в таком случае.
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
вот вам готовый вариант шаблона
Код:
string text = "Жили у бабуси 2 веселых гуся. 1 белый, другой серый.";
string random = "5";

int drand = int.Parse(random);
return Regex.Replace(text, "\\d+", m => {
    int n = int.Parse(m.Captures[0].Value);
    return (drand+n).ToString();
});
 

atheroth

Client
Регистрация
06.06.2014
Сообщения
127
Благодарностей
17
Баллы
18
Можно немного разжевать? :-)
Это C#?
как сделать так, чтобы туда вставлялся текст из переменной?
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
да
я отвечаю только на заинтересовавшие меня вопросы
 

atheroth

Client
Регистрация
06.06.2014
Сообщения
127
Благодарностей
17
Баллы
18
string text = " {-Variable.content-}";
string random = "{-Variable.random-}";

Если так сделать, не проканает?
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
8 <-----------
...поэтому даже регулярками как пользоваться ума не приложу в таком случае.
Регулярные выражения для того и существуют, чтобы решать однотипные задачи с разными входными данными.

Я дал вам универсальный алгоритм, его нужно лишь реализовать используя знакомые вам экшены.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113

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