查找具有特定数据属性的所有链接并替换锚文本

时间:2013-11-09 04:15:46

标签: c# regex

我有一个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代码的多个链接的字符串上运行此方法。

谢谢

1 个答案:

答案 0 :(得分:1)

&#34;正确的方式&#34;除此之外,正则表达式很有趣:

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之后没有属性。搜索匹配的引号或&#39;&lt;&#39; /&#39;&gt;&#39;我喜欢用(例如)/&#34;([^&#34;] +)&#34; /而不是/&#34;(。+)&#34; /