用动态数字替换文本中的单词/值

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;               
}
2个回答

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天。


我认为坦率地说,你是唯一理解这个问题的人。+1 另外,这很不错。 - Dimitar Dimitrov

-1

你可以使用随机方法,检查代码片段是否适合你。

Random random=new Random();
string text=String.Format("Today is {0} day. {1} number of our trip.", random(15-22), random(11-15));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接