gpt4 book ai didi

c# regex 查找和替换重用匹配文本的一部分

转载 作者:行者123 更新时间:2023-11-30 14:20:47 30 4
gpt4 key购买 nike

我需要对长文本字符串进行搜索和替换。我想找到所有如下所示的断开链接实例:

<a href="http://any.url.here/%7BlocalLink:1369%7D%7C%7CThank%20you%20for%20registering">broken link</a>

并修复它,使其看起来像这样:

<a href="/{localLink:1369}" title="Thank you for registering">link</a>

文本字段中可能有许多此类损坏的链接。我的困难在于如何重用匹配的 ID(在本例中为 1369)。在内容中,此 ID 随链接而变化,url 和链接文本也是如此。

谢谢,

大卫

编辑:澄清一下,我正在编写 C# 代码来运行数百个长文本字段以修复其中的损坏链接。每个单独的文本字段都包含 html,其中可以包含任意数量的损坏链接 - 正则表达式需要找到所有这些链接并将它们替换为正确版本的链接。

最佳答案

对此持保留态度,HTML 和 Regex 不能很好地协同工作:

(<a\s+[^>]*href=")[^"%]*%7B(localLink:\d+)%7D%7C%7C([^"]*)("[^>]*>[^<]*</a>)

应用于您的输入并替换为

$1/{$2}" title="$3$4

生成以下内容:

<a href="/{localLink:1369}" title="Thank%20you%20for%20registering">broken link</a>

这与单独使用正则表达式时一样接近。您需要使用 MatchEvaluator delegate从替换中删除 URL 编码。

关于c# regex 查找和替换重用匹配文本的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/806072/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com