我有一个很大的字符串数组和字符串:
string[] array = new string[3264];
array = {"00:00:45,104","00:01:04,094","01:43:24,001"....};
string str = "00:00:13,614 /n rose /n 00:01:14,001...",
我在字符串和数组中有相同的时间。我想改变这些价值观。例如,新字符串必须是:
str = "00:00:45,104 /n rose /n 00:01:04,094 ...";
我的意思是数组元素的时间变化。我想我可以在字符串中找到时间:
var mL = Regex.Matches(subtitle, @"(\d{2}:\d{2}:\d{2},\d+)", RegexOptions.Multiline);
但我不知道如何更改它们。
答案 0 :(得分:1)
您可以使用Regex.Replace
执行此操作,如下所示:
string[] array = new string[] { "00:00:45,104","00:01:04,094","01:43:24,001"};
string str = "00:00:13,614 /n rose /n 00:01:14,001";
int i = 0;
str = Regex.Replace(str, @"(\d{2}:\d{2}:\d{2},\d+)", m => array[i++]);
replace接受每个匹配并调用lambda函数来获取应该替换的字符串。所以lambda函数只是返回数组中的下一个值。