我需要搜索并替换长文本字符串.我想找到看起来像这样的断开链接的所有实例: a href="http://any.url.here/%7BlocalLink:1369%7D%7C%7CThank%20you%20for%20registering"broken link/a 并修复它,使它看起来像这样
<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和正则表达式不能很好地结合在一起:(<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编码.