我正在用 .NET 编写一个应用程序,它将根据一些输入生成随机文本。因此,如果我有像 “我喜欢你的 {lovely|nice|great} dress”
这样的文本,我想从 lovely/nice/great
中随机选择并在文本中使用它。欢迎使用 C# 或 VB.NET 提出任何建议。
最佳答案
您可以使用正则表达式替换每个 {...}
。 Regex.Replace
函数可以取 MatchEvaluator
它可以执行从选项中选择随机值的逻辑:
Random random = new Random();
string s = "I love your {lovely|nice|great} dress";
s = Regex.Replace(s, @"\{(.*?)\}", match => {
string[] options = match.Groups[1].Value.Split('|');
int index = random.Next(options.Length);
return options[index];
});
Console.WriteLine(s);
示例输出:
I love your lovely dress
Update: Translated to VB.NET automatically using .NET Reflector:
Dim random As New Random
Dim s As String = "I love your {lovely|nice|great} dress"
s = Regex.Replace(s, "\{(.*?)\}", Function (ByVal match As Match)
Dim options As String() = match.Groups.Item(1).Value.Split(New Char() { "|"c })
Dim index As Integer = random.Next(options.Length)
Return options(index)
End Function)
关于c# - .NET 中的字符串标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2952677/