You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从UWP的RichEditBox中提取所有链接的范围及内容

提取RichEditBox中链接的范围与内容

要提取你设置的10个链接的位置范围和对应内容,可以通过ITextRange结合格式查找的方式实现,具体步骤如下:

实现思路

借助TextDocument的范围查找功能,指定只检索带有链接格式的文本段,逐个获取每个链接的起始/结束位置和对应的链接地址。

代码示例

// 存储链接信息的列表,包含起始位置、结束位置、链接地址
var linkInfoList = new List<(int StartPos, int EndPos, string LinkUrl)>();
// 获取整个文本的范围
var fullRange = richEditBox.TextDocument.GetRange(0, richEditBox.TextDocument.Length);

while (fullRange.FindText("", TextRangeOptions.FormatLink, out var linkRange))
{
    // 去除设置链接时添加的双引号
    var linkUrl = linkRange.Link?.Trim('"') ?? string.Empty;
    // 记录链接的位置和地址
    linkInfoList.Add((linkRange.StartPosition, linkRange.EndPosition, linkUrl));
    // 移动范围起始位置,避免重复查找同一链接
    fullRange.StartPosition = linkRange.EndPosition;
}

// 遍历输出所有链接信息(示例)
foreach (var linkInfo in linkInfoList)
{
    Console.WriteLine($"链接位置:{linkInfo.StartPos}-{linkInfo.EndPos},地址:{linkInfo.LinkUrl}");
}

关键说明

  • FindText方法传入TextRangeOptions.FormatLink参数,会自动定位到带有链接格式的文本段
  • 因为你设置链接时给地址加了双引号,所以读取后需要用Trim('"')去除多余引号
  • 每次查找完成后更新范围起始位置,确保遍历所有链接而不重复

内容的提问来源于stack exchange,提问作者pavan kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:40:03