从字符串中删除Markdown标记

本文关键字:Markdown 标记 删除 字符串 | 更新日期: 2023-09-27 17:58:02

我有一个字符串,里面嵌入了Markdown标记。我不想像其他任何东西一样对Markdown进行编码,我只想去掉所有的标记。

我怎样才能快速做到这一点?我需要将此作为处理大约500万条文本的批处理工作的一部分,因此速度非常重要。

我看了MarkdownSharp,并使用了Transform,但我不确定这是最好的方法。我只想要纯文本输出,里面没有标签。我甚至在考虑删除正则表达式,但我不确定最具性能的选项是什么。

从字符串中删除Markdown标记

您可能可以使用MarkdownSharp或任何其他类似的库(我建议使用Strike,因为它速度惊人!)将Markdown转换为Html,然后使用HtmlAgilityPack提取文本。

一个更快但工作量更大的选项是修改现有的Markdown解析器以生成纯文本。

从注释中很难找到解决方案,但这适用于.NET6:

  1. 从NuGet安装Markdown Deep。我需要一些.NET 6的东西,所以我使用了Core版本https://www.nuget.org/packages/MarkdownDeep.NET.Core/
  2. 创建Markdown对象:
using MarkdownDeep;
var markdownRemover = new Markdown()
{
    SummaryLength = -1
};
  1. 从文本中删除标记:
var plainText = markdownRemover.Transform(mdText);