将字符串替换为此字符串的索引
本文关键字:字符串 索引 替换 | 更新日期: 2023-09-27 18:24:00
你好,所以我有一个看起来像的文本文件
45353
b
4353
b
54
54
b
5345
53453
和看起来像的数组列表
A
B
A
如何替换字符串b->A b->b->A?
输出冲击看起来像
45353
A
4353
B
54
54
A
5345
53453
string content = File.ReadAllText("data.txt");
var replacements = new[] { "A", "B", "A" };
int index = 0;
string result = Regex.Replace(content, @"[a-zA-Z]+",
m => replacements.Length > index ?
replacements[index++] : m.Value);
这将为每个找到的字执行MatchEvaluator
,并将其替换为replacements
数组中适当位置的值。
您可以使用Regex.Replace(String, String, Int32)
,执行直到arr
中的所有预期替换都被替换为止。
var text = File.ReadAllText("file.txt");
var arr = new[] { "A", "B", "A" };
var regex = new Regex("b");
for(int i = 0; i < arr.Count; i++)
text = regex.Replace(text, arr[i].ToString(), 1);
小贴士:永远不要在累的时候回答。。。
将第二个文件读入字符串数组
保持计数器初始化为0
从第一个文件中读取,每次您的数据与替换条件匹配时,将其替换为计数器上的值,并递增计数器
StreamReader sr = new StreamReader("file.txt");
int counter = 0;
List<string> arrayFromFile = new List<string>();
while(string line = sr.ReadLine())
{
if(line=='b')
{
line = abaArray[counter];
counter++;
if(counter>=abaArray.Length)
{
counter=0;
}
}
arrayFromFile.Add(line)
}
//Write back to the file