簡體   English   中英

替換動態字符串中的部分文本

[英]Replace part of text in a dynamic string

讓我們以這個字符串為例:

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

我想剪切路徑的第一部分:

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

並將其替換為**../** ,並保留路徑的第二部分( media/reports/Darth_Vader_Report.pdf

如果知道長度或大小,可以使用ReplaceSubstring 但是由於字符串的第一部分是動態的,我該怎么做?


更新

在對StriplingWarrior提出問題之后,我意識到我可以做得更好。

目的是替換/media后面的所有內容。 “ media”目錄是靜態的,並且將始終是路徑的決定性部分。

您可以執行以下操作:

string fullPath = "D:/firstdir/Another One/and 2/bla bla bla/media/reports/Darth_Vader_Report.pdf"
int index = fullPath.IndexOf("/media/");
string relativePath = "../" + fullPath.Substring(index);

我沒有檢查它,但我認為它應該可以解決問題。

使用正則表達式:

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);
}

祝好運!

我將編寫以下正則表達式模式,

String relativePath = String.Empty;
Match m = Regex.Match("Path", "/media.*$");
if (m.Success)
{
relativePath = string.Format("../{0}", m.Groups[0].Value);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM