0
Я могу выполнить поиск, но не могу понять, как это сделать. У меня есть redirectFrom
и redirectTo
шаблоны шаблонов, как показано ниже в коде. Для данного ввода мне нужно данное ожидаемое значение. Любая помощь или совет будут высоко оценены. Большое спасибо.C# wildcard search replace in string
using System.Text.RegularExpressions;
class Program
{
const string redirectFrom = "/info/*";
const string redirectTo = "/company-info/*";
const string input = "/info/abc";
const string expected = "/company-info/abc";
static void Main(string[] args)
{
var pattern = redirectFrom.Replace("*", ".*?");
pattern = pattern.Replace(@"\", @"\\");
pattern = pattern.Replace(" ", @"\s");
var regex = new Regex(pattern, RegexOptions.None);
if (regex.IsMatch(input))
{
Console.WriteLine("Match");
var replaceregex = new Regex(pattern, RegexOptions.None);
string result = replaceregex.Replace(input, new MatchEvaluator(Program.TransformSourceUrl));
}
else
{
Console.WriteLine("No Match");
}
Console.ReadKey();
}
private static string TransformSourceUrl(Match m)
{
int matchCount = 0;
while (m.Success)
{
Console.WriteLine("Match" + (++matchCount));
for (int i = 1; i <= 2; i++)
{
Group g = m.Groups[i];
Console.WriteLine("Group" + i + "='" + g + "'");
CaptureCollection cc = g.Captures;
for (int j = 0; j < cc.Count; j++)
{
Capture c = cc[j];
System.Console.WriteLine("Capture" + j + "='" + c + "', Position=" + c.Index);
}
}
m = m.NextMatch();
}
return "";
}
Привет BenM, Спасибо за вашу помощь. Он частично работает, когда я использую ваш код, фактическое значение - «/ company-info/* abc», оно включает символ подстановки? Пожалуйста посоветуй. – user1809943