C# 仅使用正则表达式替换url中的区域设置名称(没有最后索引的字符串)

C# 仅使用正则表达式替换url中的区域设置名称(没有最后索引的字符串),c#,regex,asp.net-mvc,.net-core,C#,Regex,Asp.net Mvc,.net Core,我有以下结构的url方案设置 www.foo.com/bar 对于选择特定于区域设置的页面(栏),用户可以从下拉列表中选择不同的值,该下拉列表将向url添加区域设置代码,如: www.foo.com/en/bar www.foo.com/za/bar 如何使用正则表达式替换条前的url值以包含正确的区域设置?我有以下替代方法,部分有效,但如果我继续选择diff vale,则会多次附加区域设置代码,如中所示: www.foo.com/za/bar www.foo.com/za/en/bar str

我有以下结构的url方案设置 www.foo.com/bar

对于选择特定于区域设置的页面(栏),用户可以从下拉列表中选择不同的值,该下拉列表将向url添加区域设置代码,如:

www.foo.com/en/bar

www.foo.com/za/bar

如何使用正则表达式替换条前的url值以包含正确的区域设置?我有以下替代方法,部分有效,但如果我继续选择diff vale,则会多次附加区域设置代码,如中所示:

www.foo.com/za/bar

www.foo.com/za/en/bar

string referer = Request.Headers["Referer"].ToString();
string url = Regex.Replace(referer, Request.Host.ToString(), $"{Request.Host.ToString()}/{lang}");
return Redirect(url);

成功地使用

string url = Regex.Replace(referer, @".*\/", $"{Request.Scheme}://{Request.Host.ToString()}/{lang}/");

你确定吗?一些网站遵循语言区域惯例,如
en-US
@Prajwal是的,我有具体要求。