Удалить теги Markdown из строки

У меня есть строка, в которую встроены теги Markdown. Я не хочу кодировать Markdown как что-либо еще, я просто хочу вырвать все теги.

Как я могу сделать это быстро? Я должен сделать это как часть задачи пакетной обработки, которая обрабатывает около 5 миллионов фрагментов текста, поэтому скорость очень важна.

Я посмотрел на MarkdownSharp, и с помощью Transform, но я не уверен, что это лучший способ сделать это. Я просто хочу вывод открытого текста без тегов внутри. Я даже рассматриваю удаление регулярных выражений, но я не уверен, какой вариант будет наиболее эффективным.

2 ответа

Решение

Возможно, вы могли бы использовать MarkdownSharp или любую другую подобную библиотеку (я рекомендую Strike, поскольку она удивительно быстрая!), Чтобы преобразовать Markdown в Html, а затем использовать HtmlAgilityPack для извлечения текста.

Более быстрый вариант, но для вас больше работы, - это изменить существующий синтаксический анализатор Markdown для получения простого текста.

Решение было немного сложно получить из комментариев, но это работает для .NET 6:

  1. Установите Markdown Deep из NuGet. Мне нужно было что-то для .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);
Другие вопросы по тегам