C# 正则表达式只匹配一次

C# 正则表达式只匹配一次,c#,regex,C#,Regex,我有短信 1 00:00:03,837 --> 00:00:07,170 Text1 2 00:00:08,875 --> 00:00:10,968 Tex2 3 00:00:11,010 --> 00:00:13,843 Text3 我想这样做 00:00:03,837 --> 00:00:07,170 Text1 00:00:08,875 --> 00:00:10,968 Tex2 00:00:11,010 --> 00:00:13,843 Te

我有短信

1
00:00:03,837 --> 00:00:07,170
Text1

2
00:00:08,875 --> 00:00:10,968
Tex2

3
00:00:11,010 --> 00:00:13,843
Text3
我想这样做

00:00:03,837 --> 00:00:07,170
Text1

00:00:08,875 --> 00:00:10,968
Tex2

00:00:11,010 --> 00:00:13,843
Text3
我试过这个:

Match match = Regex.Match(loadedText, @"\d{1,4}\r\n");

if (match.Success)
{
    for (int i = 0; i < match.Groups.Count; i++)
    {
        loadedText= loadedText.Replace(match.Groups[i].Value, "");
    }
    rtbLoaded.Text = loadedText;
}

所以只有一次。。。我做错了什么?

组是regexp中
()
中的部分,而不是单个匹配项

因此,在regexp
(abc)(def)
中,第一组是
abc
,第二组是
def

不要迭代组(您只有默认组!),您需要多次匹配。可能使用内置的替换方法,而不是您在那里执行的此
Replace
hack。

尝试此替换规则:

string result = Regex.Replace(originalString, @"(?<=(\r\n|^))(\d+\r\n)", "");
string result=Regex.Replace(原始字符串,@“(?00:00:07170\r\nText1\r\n\r\n2\r\n00:00:08875-->00:00:10968\r\nTex2\r\n\r\n3\r\n00:00:11010-->00:00:13843\r\nText3\r\n\r\n”;
Console.WriteLine(Regex.Replace(输入,@)(?)?
string result = Regex.Replace(originalString, @"(?<=(\r\n|^))(\d+\r\n)", "");
string input = "1\r\n00:00:03,837 --> 00:00:07,170\r\nText1\r\n\r\n2\r\n00:00:08,875 --> 00:00:10,968\r\nTex2\r\n\r\n3\r\n00:00:11,010 --> 00:00:13,843\r\nText3\r\n\r\n";
Console.WriteLine(Regex.Replace(input, @"(?<=(\r\n|^))(\d+\r\n)", ""));