2013-05-22 2 views
4

Для примера. У меня есть строкаЗаменить слово/значение в тексте динамическим номером

string text = @"Today is {Rand_num 15-22} day. {Rand_num 11-55} number of our trip."; 

Мне нужно заменить все Rand_num Сабаиль с номером рандов (между указанными числами 15-22 или 11-55)

Пробовал л, но не знают, что делать дальше

string text = @"Today is {Rand_num 15-22} day. {Rand_num 11-55} number of our trip."; 
if (text.Contains("Rand_num")) 
{    
    string groups1 = Regex.Match(text, @"{Rand_num (.+?)-(.+?)}").Groups[1].Value; 
    string groups2 = Regex.Match(text, @"{Rand_num (.+?)-(.+?)}").Groups[2].Value;    
} 

ответ

8

Как насчет:

Random rand = new Random(); 
text = Regex.Replace(text, @"{Rand_num (.+?)-(.+?)}", match => { 
    int from = int.Parse(match.Groups[1].Value), 
     to = int.Parse(match.Groups[2].Value); 
    // note end is exclusive 
    return rand.Next(from, to + 1).ToString(); 
}); 

Очевидно выход будет меняться, но я получаю:

Сегодня 21 день. 25 номеров нашей поездки.

+0

Я думаю, что вы единственный человек, который понял эту проблему, откровенно говоря. +1 Кроме того, это довольно аккуратно. –

+0

Ницца лямбда здесь! – JeffRSon

+0

Спасибо человеку. Это все, что мне нужно – obdgy

-1

Вы можете использовать Random Method, Check Code Snippet, если он вам подходит.

Random random=new Random(); 
string text=String.Format("Today is {0} day. {1} number of our trip.", random(15-22), random(11-15)); 
Смежные вопросы