c# - 如何将 HTML 转换为纯文本

标签 c# html plaintext data-conversion

<分区>

我尝试使用以下函数将 html 转换为纯文本,但在转换时仍然出现错误。

private static string HtmlToPlainText(string html)
        {
            const string tagWhiteSpace = @"(>|$)(\W|\n|\r)+<";//matches one or more (white space or line breaks) between '>' and '<'
            const string stripFormatting = @"<[^>]*(>|$)";//match any character between '<' and '>', even when end tag is missing
            const string lineBreak = @"<(br|BR)\s{0,1}\/{0,1}>";//matches: <br>,<br/>,<br />,<BR>,<BR/>,<BR />
            var lineBreakRegex = new Regex(lineBreak, RegexOptions.Multiline);
            var stripFormattingRegex = new Regex(stripFormatting, RegexOptions.Multiline);
            var tagWhiteSpaceRegex = new Regex(tagWhiteSpace, RegexOptions.Multiline);

            var text = html;
            //Decode html specific characters
            text = System.Net.WebUtility.HtmlDecode(text);
            //Remove tag whitespace/line breaks
            text = tagWhiteSpaceRegex.Replace(text, "><");
            //Replace <br /> with line breaks
            text = lineBreakRegex.Replace(text, Environment.NewLine);
            //Strip formatting
            text = stripFormattingRegex.Replace(text, string.Empty);
            text = text.Replace(">", "");

            return text;
        }

当我尝试调试代码时,它也在纯文本输出中显示\r 和\r\n。此函数无法将 html 正确转换为纯文本。 任何人都可以建议我任何其他转换功能吗?

谢谢

最佳答案

可以使用HtmlAgilityPack的HtmlToText demo,可以是found here .

我查看了其他答案,但它们都提出了涉及正则表达式的各种解决方案。我认为 HtmlAgilityPack 没有得到足够的重视。

您需要做的就是插入 NuGet package在您的项目中并按照示例进行操作。

关于c# - 如何将 HTML 转换为纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075665/

相关文章:

c# - 在 Visual C# 中从 RichTextBox 中删除 RichText 格式

c# - 如何确定 NetworkStream 中何时没有更多数据可供读取?

c# - 处理子类/父类(super class)时覆盖 Equals(object obj) 的正确方法?

javascript - 正则表达式计算不包括 html 标签的单词

html - CSS 下拉菜单 - 重叠元素

line-breaks - Thunderbird 换行符的问题

c# - 创建新的 PayPal.Payments.DataObjects.TransactionResponse

c# - 不能制作表格 'close itself' 吗?

html - 搜索引擎是否将可点击的 div 视为链接

autocomplete - Atom 中的纯文本自动完成 (Github)