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 之后没有属性。当搜索匹配的引号或 '<' / '>' 我喜欢使用 (eg) /"([^"]+)"/ 而不是 /"(.+)"/

于 2013-11-09T04:40:09.020 回答