从 RTF 字节数组获取超链接

Get hyperlinks from RTF byte array

我有一个表示 RTF 格式的字节数组。我只想从中提取超链接。我可以使用以下方法提取纯文本(但格式丢失):

Flowdocument doc = new FlowDocument();
TextRange r = new TextRange(doc.ContentStart, doc.ContentEnd);
r.Load(stream, System.Windows.DataFormats.XamlPackage); // stream is MemoryStream. r.Text is the plain text

可以在 Flowdocument 中找到所需的数据,这是有助于检索它的代码的一般概念:

foreach (Block block in doc.Blocks)
{
  Paragraph p = block as Paragraph;
  foreach (Inline inline in p.Inlines)
  {
    Hyperlink h = inline as Hyperlink;
  }
}

也许可以按照@TheGeneral 的建议通过 RegEx 消除迭代。我确实找到了 this link 包含这样一个 RegEx。