C# 用字符串格式替换字符串

C# 用字符串格式替换字符串,c#,replace,C#,Replace,我有一个保存字符串的变量,可以这样说: string frmt = "/a/b/{0}/be/" string str=“/a/b/1/cdd/d.jpg” 我有字符串格式,比如说: string frmt = "/a/b/{0}/be/" 现在,我想用frmt替换str中的char,类似这样: string newstr = str.Replace(frmt); //result should be: /a/b/1/be/d.jpg net框架是否有类似的功能?这怎么容易做到呢 谢谢。使

我有一个保存字符串的变量,可以这样说:

string frmt = "/a/b/{0}/be/"
string str=“/a/b/1/cdd/d.jpg”

我有字符串格式,比如说:

string frmt = "/a/b/{0}/be/"
现在,我想用frmt替换str中的char,类似这样:

string newstr = str.Replace(frmt);
//result should be: /a/b/1/be/d.jpg
net框架是否有类似的功能?这怎么容易做到呢

谢谢。

使用

还是您想要的正则表达式

然后您需要使用StringBuilder

string testString ="some {replace_me} text";
StringBuilder sb = new StringBuilder(testString);
sb.Replace("{replace_me}", "new");
sb.ToString();
sb.ToString()将包含“一些新文本”

,您可以使用它来分隔分区,然后替换所需的标记。之后,您可以使用

下面是一个简单的例子:

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string myReplacement = "4";
            StringBuilder temp = new StringBuilder();
            string str = "/a/b/1/cdd/d.jpg";
            string[] splitArray = new string[] { "/" };
            string[] split = str.Split(splitArray,StringSplitOptions.RemoveEmptyEntries );

            if (split.Length > 1)
                split[2] = myReplacement;

            str = "/" + string.Join("/", split);     
        }
    }
}

那么你想合并两个字符串吗?不,str的格式是“/[string1]/[string2]/[string3]/[string4]/[string5]”,string1、2、3和5保持不变,只有string4发生了变化,我只知道string1和string2。不,你搞错了,看看我给出的示例。。我想用模式替换str中的部分字符串,其中一些字符我想保持原样(我不知道它们是什么,{0}),然后需要使用
Regex。用正则表达式替换
expression@nir-问题是你的例子没有多大意义。如果“/a/b/{0}/be/”是格式字符串,这意味着最后一个字符串应该是相同的,除了{0}部分,它应该包含要替换的内容。检查最后一个字符串-它只是前两个字符串的混合。我认为在人们正确回答你的问题之前,你需要澄清你的例子。这种说法毫无意义。为什么不呢,str的格式是“/[string1]/[string2]/[string3]/[string4]/[string5]”,string1、2、3和5保持不变,只有string4发生了变化,我只知道string1和string2。。