2014-01-21 5 views
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 ""; 
    } 

ответ

1
Regex regex = new Regex(pattern); 
string output = regex.Replace(input, replacement); 

http://msdn.microsoft.com/en-us/library/xwewhkd1(v=vs.110).aspx

+0

Привет BenM, Спасибо за вашу помощь. Он частично работает, когда я использую ваш код, фактическое значение - «/ company-info/* abc», оно включает символ подстановки? Пожалуйста посоветуй. – user1809943