我目前正在将参数传递给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
这些参数每次都可以在字符串中以不同的顺序排列,因此我目前使用的RegEx显然不会工作。我已经调查过了,并认为Split
可能是一个选项,但不确定。
最好的方法是什么?如何将其应用于我当前的问题?
答案 0 :(得分:3)
如果你正在解析查询字符串并寻找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...
}
答案 1 :(得分:1)
仍然可以在这里使用正则表达式。考虑添加另一个捕获组以捕获属性名称,然后使用匹配而不是匹配来循环所有结果,或多次调用匹配。