C# RegEx的替代方案
我当前正在向C# RegEx的替代方案,c#,regex,C#,Regex,我当前正在向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&am
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
这些参数每次在字符串中的顺序可能不同,因此很明显,我当前使用的正则表达式不起作用。我已经研究过了,认为拆分可能是一种选择,但不确定
最好的方法是什么?如何将其应用于当前的问题?这里仍然可以使用正则表达式。考虑添加另一个捕获组来捕获属性名称,然后使用匹配来匹配所有结果,而不是匹配,或者多次调用匹配。考虑添加另一个捕获组来捕获属性名称,然后使用匹配来匹配所有结果,而不是匹配,或者多次调用匹配。 如果解析查询字符串并寻找替代代码> ReXEX ,则有专门的类和方法,它返回参数集合:
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...
}
如果您正在解析查询字符串并寻找
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...
}
您的路径是正确的,但这与第二个示例中的tb参数不匹配,因为它没有尾随&。此外,我还将使用命名组使其更加清晰
(?[A-Za-z0-9]+)=(?[A-Za-z0-9]+)
然后匹配.groups[“name”]
和匹配.groups[“value”]
您的路径是正确的,但这与第二个示例中的tb参数不匹配,因为它没有尾随的&。此外,我还将使用命名组使其更清晰(?[A-Za-z0-9]+)=(?[A-Za-z0-9]+)
然后匹配.groups[“name”]
和匹配.groups[“value”]
好的,我已经实现了它,但是如何使用该值呢?就像在传递它们以决定何时使用它们一样?因为它们可能会发生变化……好吧,我已经实现了它,但是我如何使用该值呢?就像在传递它们以决定何时使用它们一样?因为他们可能会改变。。。