假设有这么一段html如果您向专家提问,<a href="zhuanjia.htm">专家</a>在登录CSDN网站后将第一时间内得到通知,并且为您提供答案
链接
如果您是第一次提问,建议您阅读"提问的智慧" 或者直接使用<a href="csdn.htm">CSDN</a> 快速搜索
链接我想要替换 链接 两个字为超链接 链接点为链接两个字向上寻找最近的链接点 替换完成后成为这样
如果您向专家提问,<a href="zhuanjia.htm">专家</a>在登录CSDN网站后将第一时间内得到通知,并且为您提供答
<a href="zhuanjia.htm">链接</a>
如果您是第一次提问,建议您阅读"<a href="tiwen.htm">提问的智慧</a>" 或者直接使用<a href="csdn.htm">CSDN</a> 快速搜索
<a href="csdn.htm">链接</a>
不知能不能做到,如不用正则表达式给点思路也好
链接
如果您是第一次提问,建议您阅读"提问的智慧" 或者直接使用<a href="csdn.htm">CSDN</a> 快速搜索
链接我想要替换 链接 两个字为超链接 链接点为链接两个字向上寻找最近的链接点 替换完成后成为这样
如果您向专家提问,<a href="zhuanjia.htm">专家</a>在登录CSDN网站后将第一时间内得到通知,并且为您提供答
<a href="zhuanjia.htm">链接</a>
如果您是第一次提问,建议您阅读"<a href="tiwen.htm">提问的智慧</a>" 或者直接使用<a href="csdn.htm">CSDN</a> 快速搜索
<a href="csdn.htm">链接</a>
不知能不能做到,如不用正则表达式给点思路也好
解决方案 »
- 怎么用C#控制IIS的启动等操作
- C#动态生成的button如何设置背景图片
- TreeView如何激发TreeNodeCheckChanged事件
- 邮件发送问题,请问怎样改才能发送成功?
- ExecuteReader()的疑问
- .NET C# 本人使用水晶报表打印条形码 求救!
- 为什么这句是错的???<%# DataBinder.Eval(Container.DataItem,"executedat").ToString("yyyy/MM/dd") %>
- c#将数据插入数据库表中问题
- 数组...只截固定的长度....请教啊.
- 谁知道哪里有 mcad 70-315考试的试题库下载啊?
- 请各位有空的帮我看看下面的代码,我的代码老实出现超时的错。请帮我改进一下。
- 用get访问器设置sqlconnection好吗?需要关闭SqlConnection对象吗?如果需要那在应用程序的哪里关闭回比较好一点.
假设有这么一段html 如果您向专家提问, <a href="zhuanjia.htm">专家 </a>在登录CSDN网站后将第一时间内得到通知,并且为您提供答案
链接
如果您是第一次提问,建议您阅读"<a href="tiwen.htm">提问的智慧 </a>" 或者直接使用 <a href="csdn.htm">CSDN </a> 快速搜索
链接 我想要替换 链接 两个字为超链接 链接点为链接两个字向上寻找最近的链接点 替换完成后成为这样
如果您向专家提问, <a href="zhuanjia.htm">专家 </a>在登录CSDN网站后将第一时间内得到通知,并且为您提供答
<a href="zhuanjia.htm">链接 </a>
如果您是第一次提问,建议您阅读" <a href="tiwen.htm">提问的智慧 </a>" 或者直接使用 <a href="csdn.htm">CSDN </a> 快速搜索
<a href="csdn.htm">链接 </a>
不知能不能做到,如不用正则表达式给点思路也好
<a href="(.*?)">(?:.*?)</a>(?:[\s\S]*?)(链接)2.替换
1)替换匹配项:(.*?) 和(链接) 都在匹配组里,(链接) 替换为 <a href="(.*?)">(链接)</a>
2)替换html:用替换后的匹配项 替换 原匹配项
textBox2.Text = Regex.Replace(textBox1.Text, @"(?<=(?<herf><a\s*href=[^>]*>)[^<]*</a>[^<]*)链接", delegate(Match m) { return m.Groups["herf"].Value + "链接" + "</a>"; },RegexOptions.IgnoreCase);
其中textBox1.Text就是你的那段html代码。
链接
如果您是第一次提问,建议您阅读"" <a href=""tiwen.htm"">提问的智慧</a>"" 或者直接使用<a href=""csdn.htm"">CSDN </a> 快速搜索
链接 ";
string result = Regex.Replace(test, @"(<a[^>]*?href=([""']?)(?<url>[^""'\s]*)\2[^>]*>[\s\S]*?)链接", @"$1<a href=""${url}"">链接</a>", RegexOptions.IgnoreCase);
MessageBox.Show(result);
不过你的答案不知为啥有点错误,不过还是感谢多次帮我,每当学习一点正则表达式,才发现还有更高深的用法,高手呀,佩服佩服,这个本来想用字符串处理,可是每处理一次,字符串长度就变了,很烦人如果您向专家提问, <a href="zhuanjia.htm">专家 </a>在登录CSDN网站后将第一时间内得到通知,并且为您提供答案
<a href="zhuanjia.htm">链接</a>
如果您是第一次提问,建议您阅读" <a href="tiwen.htm">提问的智慧 </a>" 或者直接使用 <a href="csdn.htm">CSDN </a> 快速搜索
<a href="tiwen.htm">链接</a> 第二个链接字样链错了
链接
如果您是第一次提问,建议您阅读"" <a href=""tiwen.htm"">提问的智慧</a>"" 或者直接使用<a href=""csdn.htm"">CSDN </a> 快速搜索
链接 ";
string result = Regex.Replace(test, @"(<a[^>]*?href=([""']?)(?<url>[^""'\s]*)\2[^>]*>(?:(?!<a\s)[\s\S])*?)链接", @"$1<a href=""${url}"">链接</a>", RegexOptions.IgnoreCase);
//MessageBox.Show(result);歌丸的正则适用场合有限制,中间不能有<font...>之类的html代码,如果沿用委托的话,倒是可以用我的正则取出来,再在委托里做下判断
连续执行2句
strHtml=regex.replace(strHtml,"^链接$","<a href="zhuanjia.htm">链接 </a>",RegexOptions.Multiline);
strHtml=regex.replace(strHtml,"^链接$","<a href="csdn.htm">链接 </a> ",RegexOptions.Multiline);