使用RegEx构造重定向URL

时间:2014-08-18 05:50:15

标签: c# asp.net regex redirect

如何使用Regex重定向示例

exemple.com/en/solution/platform-features

exemple.com/en/platform-features

3 个答案:

答案 0 :(得分:0)

如果您的目的是始终删除第三个元素,那么应该这样做

var reg = new Regex(@"(?<Begin>([^/]*/){2})[^/]*/(?<End>.*)");
var match = reg.Match(@"exemple.com/en/solution/platform-features");
var result = match.Groups["Begin"].Value + match.Groups["End"].Value;

答案 1 :(得分:0)

你不需要正则表达式;这只是一个简单的替换方案。虽然为了使其更加灵活,您可以为相关部件添加可配置值,如下所示:

var pattern = ConfigurationManager.AppSettings["pattern"];
var replacement = ConfigurationManager.AppSettings["replacement"];
var url = @"exemple.com/en/solution/platform-features";
var resultUrl = url.Replace(pattern, replacement);
return resultUrl;

在您的配置文件中,只需输入:

<appSettings>
    <add key="pattern" value="/solution/" /> <!--Don't just replace "solution"-it can be another part of the url-->
    <add key="replacement" value="/" />
</appSettings>

答案 2 :(得分:0)

/([^/]+)(?=/[^/]+/?$)

这个正则表达式会得到你想要的,但无论如何你总是可以使用拆分函数/并在c#中加入它#