有下面字符串
 string aaa="文字1[数字1]数字2文字2"我想得到如下结果 
string a1="文字1";
double a2="数字1";
double a3="数字2";
string a4="文字2";

解决方案 »

  1.   


    void Main()
    {
    string str=@"文字1[数字1]数字2文字2";
        foreach(Match m in Regex.Matches(str,@"[\u4e00-\u9fa5]+\d+"))
    {
       Console.WriteLine(m.Value);
    }
    /*
    文字1
    数字1
    数字2
    文字2 
    */
    }
      

  2.   

    lz把真实的例子贴出来abcd123[456]这样的文字里也有数字怎么算?
      

  3.   

            Regex regex = new Regex(@"\d+|[\u4e00-\u9fa5]+");
            MatchCollection mc = regex.Matches("文字[1111]2文字");
            string a1 = mc[0].Value;
            double a2 = double.Parse(mc[1].Value);
            double a3 = double.Parse(mc[2].Value);
            string a4 = mc[3].Value;        Response.Write(a1 + a2.ToString() + a3 + a4.ToString());
      

  4.   


    Regex.Match(input, @"(?<a1>[\u4e00-\u9fa5]+)\[(?<a2>[0-9]+)\](?<a3>[0-9]+)(?<a4>[\u4e00-\u9fa5]+)");// 取四个Group