问一下怎么样使用正则替换html中包含指定文字链接的url?
例如:将下面一段html中包含“学生”两个字链接的url替换成”http://www.baidu.com”
例如:将下面一段html中包含“学生”两个字链接的url替换成”http://www.baidu.com”
一口吃的<a class="vote_down" href="http://www.sina.com" target="_blank">监考老师</a>发现一学生在作弊,便气急败坏地指着那学生吼道:你…你…你…你…你竟敢作弊,站起来!语毕,有<a id="problem_action" href="http://www.163.com" target="_blank">5名学生站了起来</a>!
替换url后变成
一口吃的<a class="vote_down" href="http://www.sina.com" target="_blank">监考老师</a>发现一学生在作弊,便气急败坏地指着那学生吼道:你…你…你…你…你竟敢作弊,站起来!语毕,有<a id="problem_action" href="http://www.baidu.com" target="_blank">5名学生站了起来</a>!
谢谢各位!
解决方案
100
var replaceStr = "http://www.baidu.com"; var keywords = "学生"; string html = @"一口吃的<a class=""vote_down"" href=""http://www.sina.com"" target =""_blank"" > 监考老师</a>发现一学生在作弊,便气急败坏地指着那学生吼道:你…你…你…你…你竟敢作弊,站起来!语毕,有<a id=""problem_action"" href =""http://www.163.com"" target =""_blank"" > 5名学生站了起来</a>!"; var pattern = string.Format(@"(?is)(?<=<a[^>]*?href\s="")[^""]*?(?=""[^>]*?>[\s\S]*?{0}[\s\S]*?</a>)", keywords); Console.WriteLine(Regex.Replace(html, pattern, replaceStr));