そのスニペットを処理する C# のクラスを次に示します。
public class Spinner
{
private static Random rnd = new Random();
public static string Spin(string str)
{
string regex = @"\{(.*?)\}";
return Regex.Replace(str, regex, new MatchEvaluator(WordScrambler));
}
public static string WordScrambler(Match match)
{
string[] items = match.Value.Substring(1, match.Value.Length - 2).Split('|');
return items[rnd.Next(items.Length)];
}
}
そして試してみてください:
Console.WriteLine(Spinner.Spin("{Hello|Greetings|Merhaba} World, My name is {Beaver|Michael} Obama"));
記事全文はこちら: http://jeremy.infinicastonline.com/2010/11/spintax-class-for-c-net/