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每次,所以我需要使用一个正则表达式,而不是一个固定的字符串替换。
当"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);
}