由于一个老板的需要.在一个textBox中是这样输入的 45KG/包  当然也有可能会是这样的  3米/根 .当然还会出现很多其他的.反正就是单位长度或者单位重量.这个textBox中有3个值.怎么分别一一取出,让数据表中3个字段中.请大家很给力的告诉我好吗?最好能给出代码.

解决方案 »

  1.   


                string str = "45KG/包";
                System.Text.RegularExpressions.Match match = System.Text.RegularExpressions.Regex.Match(str, @"^(\d+)([^/]+)/(.+)$");
                if (match.Success)
                {
                    string[] result = new string[3];
                    for (int i = 0; i < result.Length; i++)
                    {
                        result[i] = match.Groups[i + 1].Value;
                        Console.WriteLine(result[i]);
                    }
                }
      

  2.   

    那 3米/根  怎么办呢?这个textBox中都有可能输入的.还有他们的公司的材料有粒子呢.大的像拳头.那这个textBox中就会这样输入了 ∮3.2mm/粒怎么办?
      

  3.   

    先找出字符串的规则来才能处理,像45KG/包和3米/根,这样要分解成【数字+字符+/+字符】这样通过正则表达式应该可以,不过个人建议不妨将45KG/包拆分成45/KG/包,中间用/分隔,这样的话通过字符串的split函数就可以很方便的取出三个信息了
      

  4.   


                string str = "∮3.2mm/粒";
                System.Text.RegularExpressions.Match match = System.Text.RegularExpressions.Regex.Match(str, @"(?<num>\d+(\.\d+)*)(?<unit1>[^/]+)/(?<unit2>.+)");
                if (match.Success)
                {
                    string[] result = new string[3];
                    result[0] = match.Groups["num"].Value;
                    result[1] = match.Groups["unit1"].Value;
                    result[2] = match.Groups["unit2"].Value;
                }
      

  5.   

    你可以把texbox中的字符串先打散成字符数组,然后遍历数组,等出现'/'字符时,将'/'其前面的加起来得到一个字符串,同样'/'后面的也加起来得到一个新字符串,eg:45kg/包, char [] arr=new char[10] {'4','5','k','g','/',''包'};
    当遍历数组arr时,遇到'/'时跳出,得到 string s1="45kg" ,s2="/",s3="包"。
    这样应该差不多了。
      

  6.   

    45KG/包 看看能不统一格式,如:45空格KG/包  数字和单位长度之间添加一个空格:45 KG/包,这样通过两次使用split函数,分别是按“空格”和“/”,就可以分开了.