1

C# 文字列にランダムな HTML コードが含まれています。この特定のデータ属性「data-special-attr」を持つすべてのリンクを取得し、すべてのリンクのテキストを属性の値に置き換えるにはどうすればよいですか。最後に、属性を削除します。

例: 前:

<a href="http://example.com" style='class' data-foo='' data-special-attr="new text1">old text1</a>

後:

<a href="http://example.com" style='class' data-foo=''>new text1</a>

この特定の attr と他の html コードを含む複数のリンクを含む文字列に対して、このメソッドを実行する必要があります。

ありがとう

4

1 に答える 1

1

「正しい方法」は別として、正規表現は楽しいものです。

string sample = @"<a href=""http://example.com"" style='class' data-foo='' data-special-attr=""new text1"">old text1</a>";
string output = Regex.Replace(sample, @"<([^>]+) data-special-attr=""([^""]+)"">[^<]*</a>", "<$1>$2</a>");

Console.WriteLine(sample);
Console.WriteLine(output);

data-special-attr の後に属性はないと仮定しています。一致する引用符または '<' / '>' を検索する場合、(例) /"(.+)"/ ではなく /"([^"]+)"/ を使用するのが好きです

于 2013-11-09T04:40:09.020 に答える