Единственный надежный способ - написать собственный анализатор RTF [spec] , использовать библиотеку, например LibRTF , или вы можете оставить открытым RichTextControl и обновить его с помощьюновые документы RTF вместо того, чтобы каждый раз уничтожать объект.
Я считаю, что RTF не является обычным языком, поэтому не может быть правильно проанализирован RegEx (в отличие от HTML, несмотря на миллионы попыток сделать это), но вы делаетене нужно писать полный анализатор RTF.Я бы начал с простого парсера строк.Попробуйте:
- Удалить содержимое между {\ и}
- Удалить теги.Теги начинаются с обратной косой черты, \, и сопровождаются текстом.Если за обратной косой чертой следует пробел, это не тег.
- Документ должен заканчиваться хотя бы одной закрывающей фигурной скобкой,}
Любой оставшийся контент, который не является пробеломдолжен быть содержимым документа, хотя это может иметь некоторые исключения, поэтому вам нужно протестировать множество образцов RTF.