C# 如何用递增数字替换包含某些字符的唯一字符串

C# 如何用递增数字替换包含某些字符的唯一字符串,c#,regex,string,replace,C#,Regex,String,Replace,这是我的字符串: … … …8451 \uuuu相同\uu字符串\uuuuuu… …5236\u相同的\u字符串\u\u… …9854_uuu相同_uu字符串_uuu… …8751_uu相同_u字符串_uuu… …3254\u相同的字符串\u\u… … 点表示->字符串中的其他字符。 正如你们所看到的,在我的字符串中有5个相同的子字符串,我想在所有这些相同的子字符串加上一个递增的数字之前更改4位数字 更改后的平均值(与删除或替换或正则表达式一起使用)我想要此字符串: … … …1111\uuu

这是我的字符串:



…8451 \uuuu相同\uu字符串\uuuuuu…
…5236\u相同的\u字符串\u\u…
…9854_uuu相同_uu字符串_uuu…
…8751_uu相同_u字符串_uuu…
…3254\u相同的字符串\u\u…

点表示->字符串中的其他字符。
正如你们所看到的,在我的字符串中有5个相同的子字符串,我想在所有这些相同的子字符串加上一个递增的数字之前更改4位数字
更改后的平均值(与删除替换正则表达式一起使用)我想要此字符串:



…1111\uuu相同\uu字符串\uuuuu…
…2222\u相同的字符串\u\u…
…3333\u相同\u字符串\u\u…
…4444\u相同\u字符串\u\u…
…5555_uuu相同的字符串\uuuuuu…

正如你所看到的一样,相同的字符串不是我的目标,我的目标是那些4位数字,它们应该像这样改变:111122233444455

我该怎么做呢?

你可以使用正则表达式

int count = 0;
var result = Regex.Replace(
               text, 
               @"\d\d\d\d(__Same_String__)", 
               m => (++count).ToString().PadLeft(4, (char)(count + '0')) + m.Groups[1].Value);

如何识别同一个_字符串的位置?它是固定的吗?问题是关于行中字符串的“索引”。您是否可以确认SameString不是可变的,即在线路上循环时唯一的字符串没有更改?计数是否总是小于10?相同的字符串->“嗨,stackoverflow成员。”我的大字符串中有5个成员。那么你的意思是什么?它是固定的吗?答案是肯定的。同一个字符串不是变量,它是我在问题中提到的字符串。谢谢。请从1111开始计数,不要使用++@月光从1111开始,为什么我不应该使用++?你测试过代码了吗?我在发帖之前做过。嗨@EZI,回答得很好!我刚准备好发布我的(工作)10号邮轮,但是你的邮轮太可爱了!