C#Multi Spintax - 旋转文本

时间:2014-01-17 12:57:55

标签: c# spintax

我得到了这个用于旋转文本的课程。

    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)];
        }
    }

但是我需要能够旋转多个spintax文本。

例如 {1 | 2} - {3 | 4}

返回:2 - 4 所以它有效。

但: {{1 | 2} | {3 | 4}} - {{5 | 6} | {7 | 8}}

返回:2 | 4} - {5 | 7}

如果spintax中有spintax,它就不起作用。

有任何帮助吗? :)

1 个答案:

答案 0 :(得分:1)

dealing with nested structures中的正则表达式并不好,这意味着你应该尝试不同的方法。

在您的示例中,{{1|2}|{3|4}} - {{5|6}|{7|8}}{1|2|3|4} - {5|6|7|8}相同,因此您可能不需要嵌套的spintax。