正则表达式.替换问题-自定义URL重写
本文关键字:URL 重写 自定义 替换 问题 正则表达式 | 更新日期: 2023-09-27 18:05:26
我想写我自己的301重定向。我有两根弦。一个是旧url,另一个是新url。示例在
下面原Url:
procurement-notice-('d+).html
新url:
/Bids/Details/$1
像这样的,我有很多新旧url。我正在做下面的工作,以匹配的url很好。其中"redirect"是一个包含新旧url的字典。
var matchedURL = redirect.SingleOrDefault(d => Regex.Match(url, d.Key, RegexOptions.Singleline).Success);
,但现在我想用新的url替换匹配的一个。
你有matchedURL,其中键是旧的url正则表达式,值是新的url替换模式。
你可以使用正则表达式。替换方法,接受3个字符串参数。
using System;
using System.Text.RegularExpressions;
class App
{
static void Main()
{
var input = "procurement-notice-1234.html";
var pattern = @"procurement-notice-('d+).html";
var replacement = "/Bids/Details/$1";
var res = Regex.Replace(input, pattern, replacement);
Console.WriteLine(res);
// will output /Bids/Details/1234
}
}
在你的例子中,代码可能是这样的:
var matchedURL = redirect.SingleOrDefault(d => Regex.Match(url, d.Key, RegexOptions.Singleline).Success);
if (matchedURL != null)
{
var result = Regex.Replace(url, matchedURL.Key, matchedURL.Value);
}