要求如下:1.将正文中的成对的“★”和“★”之间的内容处理为HTML下标标记,例如:
“α★1★”处理成“α<sub>1</sub>”。2.将正文中的成对的“☆”和“☆”之间的内容处理为HTML上标标记,例如:“M☆2☆”处理成“M<sup>2</sup>”。匹配会写 就是不知道怎么拿到星星中间的值保留下来..汗!

解决方案 »

  1.   

    自己写搜索不是更方便?遇到第一个★就替换成《sub》遇到第二个就替换《/sub》,循环就行了....
      

  2.   


    private static void TestRegex12()
    {
        string test = @"α★1★M☆2☆";
        string result = Regex.Replace(test, @"([★☆])([^★☆]*)\1", delegate(Match m)
        {
            if (m.Groups[1].Value == "★")
            {
                return "<sub>" + m.Groups[2].Value + "</sub>";
            }
            else
            {
                return "<sup>" + m.Groups[2].Value + "</sup>";
            }
        });
        Console.WriteLine(result);//result就是你要的
    }
      

  3.   

    仅仅是替换那就用replace()就好了.....
    但是你的必须要判断是第几个符号,看看MSDN的教程吧~
      

  4.   

    try...string test = "α★1★";
    Regex reg = new Regex(@"★([^★]*)★");
    string result = reg.Replace(test, "<sub>$1</sub>");