c#取代锚文本

本文关键字:文本 取代 | 更新日期: 2023-09-27 18:08:21

一些链接输入到我们的数据库是巨大的,我需要控制它,因为它打破报告。

我需要以编程方式转换:

<a href="http://www.thisismylongurl.com">http://www.thisismylongurl.com</a>

<a href="http://www.thisismylongurl.com">Link</a>

我已经研究了正则表达式。替换,但似乎在货架上找不到我需要的。

在不明显的情况下,"http://www.thisismylongurl.com"将是一个不同的URL每次,所以我需要使用一个正则表达式,而不是一个固定的字符串替换。

c#取代锚文本

当"Link"在替换中没有改变时,您可以尝试这个

(<'s*a's+href="[^"]+">)[^<]*(?=</a>)

并替换为

$1Link

在Regexr上查看

's匹配空白字符

[^"]是一个否定的字符类,它匹配除了"

之外的任何字符。

(?=</a>)是正向插入,确保</a>跟随匹配。

$1给出第一个捕获组的内容,即第一个左括号后面的子模式匹配的内容。

工作完美。不涉及正则表达式。

  protected void Page_Load(object sender, EventArgs e)
    {
        string str1="<a href='http://www.thisismylongurl.com'>http://www.thisismylongurl.com</a>";
        int b1 = str1.IndexOf(">");
        int b2 = str1.LastIndexOf("<");
        str1= str1.Remove(b1+1);
        int b3 = str1.IndexOf(">");
        str1 = str1.Insert(b3+1, "Link");
        Response.Write(str1);
    }