正则表达式的替代品

本文关键字:替代品 正则表达式 | 更新日期: 2024-12-05 16:45:05

我目前正在将参数传递给这样的SQL字符串 -

grid=0&

我正在使用RegEx来获取0值,如下所示-

Match match = Regex.Match(input, @"grid=([A-Za-z0-9'-]+)'&$",
            RegexOptions.IgnoreCase);
string grid = match.Groups[1].Value;

这很完美。

然而,随着开发的进展,很明显,更多的参数将被添加到字符串中,就像这样

grid=0&hr=3&tb=0

这些参数每次在字符串中可能以不同的顺序出现,因此很明显我当前使用的正则表达式不起作用。我已经研究了它,并认为Split可能是一种选择,但不确定。

最好的方法是什么,我怎样才能将其应用于我当前的问题?

正则表达式的替代品

如果您正在解析查询字符串并寻找 Regex 的替代方案,则有一个专门的类和方法,它返回参数集合:

        string s = "http://www.something.com?grid=0&hr=3&tb=0";
        Uri uri = new Uri(s);
        var result = HttpUtility.ParseQueryString(uri.Query);

您必须包含System.Web命名空间。您可以使用其键访问每个参数的值:

        foreach (string key in result.Keys)
        {
            string value = result[key];
            // action...
        }

正则表达式仍然可以在这里使用。 请考虑添加另一个捕获组来捕获属性名称,然后使用"匹配"而不是"匹配"循环遍历所有结果,或多次调用"匹配"。