これは私にとってはうまくいきます:
string myString = "<h2>content needs removing</h2> other content...";
Console.WriteLine(myString);
myString = Regex.Replace(myString, "<h[0-9]>.*</h[0-9]>", string.Empty);
Console.WriteLine(myString);
表示:
<h2>content needs removing</h2> other content...
other content...
予想通り。
実際のケースにいくつかの異なる見出しタグがあることが問題である場合は、貪欲な*数量詞に問題があります。可能な限り最長の一致を作成します。たとえば、次の場合:
<h2>content needs removing</h2> other content...<h3>some more headings</h3> and some other stuff
<h2>
からまでのすべてを一致させ</h3>
て置き換えます。これを修正するには、遅延数量詞を使用する必要があります。
myString = Regex.Replace(myString, "<h[0-9]>.*?</h[0-9]>", string.Empty);
あなたに残します:
other content... and some other stuff
ただし、これはネストされた<h>
タグを修正しないことに注意してください。@fardjadが言ったように、HTMLに正規表現を使用することは一般的に良い考えではありません。