Search code examples
c#asp.netregexstring-math

Replace part of text in a dynamic string


Let’s take this string has an example:

D:/firstdir/Another One/and 2/bla bla bla/media/reports/Darth_Vader_Report.pdf

I want to cut the first part of the path:

D:/firstdir/Another One/and 2/bla bla bla

And replace it with **../**, and keep the second part of the path (media/reports/Darth_Vader_Report.pdf)

If I knew the length or size of it, I could use the Replace or Substring. But since the first part of the string is dynamic, how can I do this?


Update

After StriplingWarrior question, I realized that I could have explained better.

The objective is to replace everything behind /media. The “media” directory is static, and will always be the decisive part of the path.


Solution

  • Use Regular Expressions:

    Regex r = new Regex("(?<part1>/media.*)");
    var result = r.Match(@"D:/firstdir/Another One/and 2/bla bla bla/media/reports/Darth_Vader_Report.pdf");
    if (result.Success)
    {
        string value = "../" + result.Groups["part1"].Value.ToString();
        Console.WriteLine(value);
    }
    

    Good luck!