我得到了这个用于旋转文本的课程。
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,它就不起作用。
有任何帮助吗? :)
答案 0 :(得分:1)
dealing with nested structures中的正则表达式并不好,这意味着你应该尝试不同的方法。
在您的示例中,{{1|2}|{3|4}} - {{5|6}|{7|8}}
与{1|2|3|4} - {5|6|7|8}
相同,因此您可能不需要嵌套的spintax。