我有一些我正在从网页中提取的数据,我想知道如何删除这些字符之间的所有内容 - <和>,同时也删除这些字符本身。以下是我从网站
获取的字符串示例<a>SomeTextHere</a>Moretext<br><tr>SomeText</tr>
我希望我的最终结果是 -
SomeTextHere MoreText SomeText
有没有办法可以快速有效地完成这项工作?
答案 0 :(得分:3)
您可以使用这个简单的RegEx。
private string StripTagsRegex(string source)
{
return Regex.Replace(source, "<.*?>", string.Empty);
}
对于更复杂的工作,请使用Html Agility Pack,这是此通常推荐的工具。它将采用格式错误的HTML并将其按入XHTML,然后按照XML类等可遍历的DOM。
答案 1 :(得分:2)
您似乎要求的是用一个空格替换多个连续的html标签,而基于代码的答案只会连接标签两侧的内容
以下内容将删除实际标记和html注释,同时保留其他所有内容(包括不构成标记声明一部分的&lt;和&gt;字符。
private string StripTagsRegex(string source)
{
return Regex.Replace(source, "(</?[a-z][a-z0-9]*[^<>]*>|<!--.*?-->)+", " ", RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.Multiline).Trim();
}
使用此方法:
<a>SomeTextHere</a>Moretext<br><tr>SomeText</tr>
成为
SomeTextHere MoreText SomeText
这是我认为你真正要求的。