首页 > 解决方案 > 我想使用正则表达式从这个字符串 GRN/GSI/2017/7 中提取 7

问题描述

我想使用正则表达式从这个字符串 GRN/GSI/2017/7 中提取 7

我试了一下,但它提取了 2017

`string s1 = dt2.Rows[0]["Doc_No"].ToString();
                string i1;
                string[] numbers = Regex.Split(s1, @"\D+");
                foreach (string value in numbers)
                {
                    if (!string.IsNullOrEmpty(value))
                    {
                        i1 = value;
                        txtGRNNo.Text = i1;

                    }
                }`

标签: c#asp.net.netregex

解决方案


您能否解释一下提取该数字的“规则”是什么?您发布的代码将在拆分字符串后遍历所有数字。"\d+" 是 1 个或多个数字。因此,在您的情况下,20177都将匹配。

你总是只想要最后一个数字吗?

如果是这样,那么这可能对您有用:

string s1 = dt2.Rows[0]["Doc_No"].ToString();
txtGRNNo.Text = Regex.Split(s1, @"/").Last();

推荐阅读