Удалить теги Markdown из строки
У меня есть строка, в которую встроены теги Markdown. Я не хочу кодировать Markdown как что-либо еще, я просто хочу вырвать все теги.
Как я могу сделать это быстро? Я должен сделать это как часть задачи пакетной обработки, которая обрабатывает около 5 миллионов фрагментов текста, поэтому скорость очень важна.
Я посмотрел на MarkdownSharp, и с помощью Transform
, но я не уверен, что это лучший способ сделать это. Я просто хочу вывод открытого текста без тегов внутри. Я даже рассматриваю удаление регулярных выражений, но я не уверен, какой вариант будет наиболее эффективным.
2 ответа
Возможно, вы могли бы использовать MarkdownSharp или любую другую подобную библиотеку (я рекомендую Strike, поскольку она удивительно быстрая!), Чтобы преобразовать Markdown в Html, а затем использовать HtmlAgilityPack для извлечения текста.
Более быстрый вариант, но для вас больше работы, - это изменить существующий синтаксический анализатор Markdown для получения простого текста.
Решение было немного сложно получить из комментариев, но это работает для .NET 6:
- Установите Markdown Deep из NuGet. Мне нужно было что-то для .NET 6, поэтому я использовал версию Core https://www.nuget.org/packages/MarkdownDeep.NET.Core/
- Создать
Markdown
объект:
using MarkdownDeep;
var markdownRemover = new Markdown()
{
SummaryLength = -1
};
- Удалите уценку из текста:
var plainText = markdownRemover.Transform(mdText);