Я пытаюсь создать программу, которая читает текст как форматированный текст и выводит его, используя Markdown. Я скопировал следующий абзац в RichTextBox (выделение сохранено из оригинала)
Необходимый компонент повествований и повествования . Когда автор рассказа (будь то писатель, оратор, режиссер или другой) передает историю своей аудитории, аудитория может создать внутреннее представление мир, в котором происходит история («мир истории»). То, как аудитория делает это, зависит от того, какие аспекты мира автор решит явно включить в повествование, такие как персонажи и характеристики, настройки и их описания, а также информацию о мире истории, которую аудитория может не знать.
И когда я читаю свойство RichTextBox.Rtf, оно выглядит так (выделено для демонстрации):
{\ rtf1 \ fbidis \ ansi \ ansicpg1252 \ deff0 \ deflang2057 {\ fonttbl {\ f0 \ fswiss \ fprq2 \ fcharset0 Arial;} {\ f1 \ froman \ fprq2 \ fcharset0 Times New Roman;}} {\ colortbl; \ red0 \ green0 \ blue0;} \ viewkind4 \ uc1 \ pard \ ltrpar \ cf1 \ f0 \ fs22 Необходимый компонент \ b повествования и рассказывания \ b0. Когда \ b автор \ b0 рассказа (будь то писатель, оратор, кинематографист или кто-либо еще) передает рассказ своей аудитории, \ b аудитории \ b0 разрешается построить внутреннее представление о мире, в котором история происходит (мир истории \ ldblquote \ rdblquote). То, как аудитория делает это, зависит от того, какие аспекты мира автор решит явно включить в повествование, такие как персонажи и характеристики, настройки и их описания, а также информацию о мире истории, которую аудитория может не знать. \ cf0 \ f1 \ fs24 \ par \ pard \ ltrpar \ sa160 \ sl252 \ slmult1 \ fs22 \ par \ pard \ ltrpar \ cf1 \ f0 \ par}
Я хочу извлечь текстовое содержимое из этого Rtf string - мне не интересны биты кода до и после Rtf, все, что я хочу знать, - это полужирный шрифт, itali c и другое форматирование. Я пытаюсь определить, как определить , где начинается текст для любого данного данного абзаца.
Как человек, я, очевидно, знаю, где начинается текст - сразу после раздела Я смел Я не знаю, как сказать моей программе, что искать, хотя. Я почти уверен, что код rtf в начале абзаца различен для каждого абзаца, поэтому я не могу просто сказать своей программе найти этот конкретный код и удалить его.
Что-то еще, о чем я думал, было поиск первых n символов в исходном абзаце в выводимом rtf, например, поиск «необходимого компонента». Но если любое из этих первых слов выделено жирным шрифтом, оно не будет выглядеть одинаково в выводе rtf, поэтому этот подход также не будет работать согласованно.
Я уверен, что упускаю очевидное решение, но если кто-нибудь знает, как мне удачно определить, где начинается и заканчивается текстовое содержимое, я был бы рад.
Я использую VB. NET в Winforms, поэтому предпочел бы ответ в VB. NET или псевдокод.