string str1 = "1";
            string str2 = "2";
            string str3 = "3";
            string str4 = "4";
            string str = "1X23Y4";
            string pattern = string.Format(@"(?<={0})(((?!{1}).)*)(?={1}{2}(((?!{3}).)*){3})", str1, str2, str3, str4);
            str = Regex.Replace(str, pattern, "$3");
如果2-3之间有未知的字符串,这个正则该怎么改改???c#