string str="3421VFSS898SKW#515FKSIWL  求一正则 匹配字符串 str(可由数字,大写字母,或者数字和大写字母构成,中间用#号分开) ,并且分别获取#号两边的字符串

解决方案 »

  1.   

    string yourStr = "3421VFSS898SKW#515FKSIWL";
    Match m = Regex.Match(yourStr, @"^([A-Z\d]+)#([A-Z\d]+)$");
    Console.WriteLine(m.Groups[1].Value);
    Console.WriteLine(m.Groups[2].Value);
      

  2.   

    如果整个字符串都是这样组成的,那完全没必要用正则,直接string的Split方法就可以了,除非是从其它字符串中提取才用到正则
    string str = "3421VFSS898SKW#515FKSIWL";
    Regex reg = new Regex(@"([A-Z0-9]+)#([A-Z0-9]+)");
    MatchCollection mc = reg.Matches(str);
    foreach (Match m in mc)
    {
         richTextBox2.Text += m.Groups[1].Value + "\n";
         richTextBox2.Text += m.Groups[2].Value + "\n";
    }