我正在尝试使用 C# 从字符串中删除空的 url 类型参数。我的代码示例在这里。
public static string test ()
{
string parameters = "one=aa&two=&three=aaa&four=";
string pattern = "&[a-zA-Z][a-zA-Z]*=&";
string replacement = "";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(parameters, replacement);
return parameters;
}
public static void Main(string[] args)
{
Console.WriteLine(test());
}
我尝试了 rextester 中的代码
输出:one=aa&two=&three=aaa&four=
预期输出:one=aa&three=aaa
最佳答案
你绝对不需要为此推出自己的正则表达式,尝试使用 HttpUtility.ParseQueryString() :
public static string RemoveEmptyUrlParameters(string input)
{
var results = HttpUtility.ParseQueryString(input);
Dictionary<string, string> nonEmpty = new Dictionary<string, string>();
foreach(var k in results.AllKeys)
{
if(!string.IsNullOrWhiteSpace(results[k]))
{
nonEmpty.Add(k, results[k]);
}
}
return string.Join("&", nonEmpty.Select(kvp => $"{kvp.Key}={kvp.Value}"));
}
fiddle here
关于C# 删除空 url 参数正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48445767/