C# 正規表現でテキスト内のタグを見つけようとするとフリーズする
お世話になります。
HTMLファイルを読ませて、そこからタグを一つ一つ拾い上げるコードを作成中なのですが、そこそこ2000kb程度のテキストに検索をかけると、何度やってもフリーズしてしまいます。
VisualStudioCommunity2019,バージョンは16.2.4です。
コード、もしくは正規表現のパターンに間違いなどありましたらご指摘ください。
以下がコードです。
string stBuff = File.ReadAllText("xxx.htm",Encoding.UTF8);
stBuff = stBuff.Replace("\r\n", "");
stBuff = stBuff.Replace("\n", "");
ofd = null;
int id = 0;
//while (true) うまくいかないのでループは外してあります。
{
Match mc = Regex.Match(
stBuff,
@"<(?<tag>.*?)>[^<>]*?</\k<tag>>"
);
if (!mc.Success)
{
//break;
}
MessageBox.Show(mc.Value);
stBuff = stBuff.Replace(mc.Value, "『" + id + "』");
id++;
this.Text = "" + id;
}
this.textBox1.Text = stBuff;