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

  • Автор темы Автор темы atheroth
  • Дата начала Дата начала

atheroth

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

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

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

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

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

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

Писал с телефона, если что, не обессудьте.
 
Не все так просто. если бы я знал, точное количество цифр в тексте, я бы сделал. Суть в том, что в тексте, цифр может не быть вообще или быть 30 штук :) Нужно какое-то универсальное решение :)
И текст каждый раз будет новый, поэтому даже регулярками как пользоваться ума не приложу в таком случае.
 
вот вам готовый вариант шаблона
Код:
Развернуть Свернуть Копировать
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();
});
 
Можно немного разжевать? :)
Это C#?
как сделать так, чтобы туда вставлялся текст из переменной?
 
да
я отвечаю только на заинтересовавшие меня вопросы
 
string text = " {-Variable.content-}";
string random = "{-Variable.random-}";

Если так сделать, не проканает?
 
8 <-----------
...поэтому даже регулярками как пользоваться ума не приложу в таком случае.
Регулярные выражения для того и существуют, чтобы решать однотипные задачи с разными входными данными.

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

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