想象一下,我有一个RichEditBox字符串长度为100,并且有10个链接设置为字符串中的不同集合,现在如何提取这10个链接的所有范围和链接的内容。我以这种方式设置了RichEditBox的链接
RichEditBox.TextDocument.Selection.StartPosition = 10;
RichEditBox.TextDocument.Selection.EndPosition = 16;
RichEditBox.TextDocument.Selection.Link = "\"www.google.com\"";
1条答案
按热度按时间knpiaxh11#
这里有一个解决方案,使用
TextGetOptions.FormatRtf
获取Rtf格式的文本内容。Text -->“This is so me sam ple text”,其Rtf格式如下。
{\f1\fbidis\ansi\ansicpg1252\def0\nouicompat\defang1033 {\fonttbl{\f0\fnil Segoe UI Variable;}}\r\n{\colortbl ;\red0\green0\blue0;\red0\green0\blue255;{*\generator Riched20 10.0.22621}\viewkind4\uc1 \r\n\pard\tx720\cf1\f0\fs21这是{{\field{*\fldinst{HYPERLINK“www.google.com“}}{\fldrslt{\ul\cf2 me sam}}}}\f0\fs21 ple text\par\r\n}\r\n\0
然后使用正则表达式
(?<={HYPERLINK).*?(?=})
和(?<=cf2).*?(?=})
获取链接和链接内容。