大家好,本人想做个给关键字加链接的功能!在发布时,将指定关键字加链接 如“和尚” 变成 <a href=''>和尚</a>
于是想到了用 str.replace("和尚","<a href=''>和尚</a>") 在发布时,这样做是可以的,但是发布完了想修改时就会出现再次被替换的情况 。 "和尚" 会被变成 <a href=''><a href=''>和尚</a></a>. 于是想到一个方法,想用正则表达式将指定关键字(可以为多个)的链接先替换掉,如 <a href=''>和尚</a> 还原为 "和尚". 这样再次修改的时候,就不会出现这种情况了。特来请教大家,此正则怎么写?
于是想到了用 str.replace("和尚","<a href=''>和尚</a>") 在发布时,这样做是可以的,但是发布完了想修改时就会出现再次被替换的情况 。 "和尚" 会被变成 <a href=''><a href=''>和尚</a></a>. 于是想到一个方法,想用正则表达式将指定关键字(可以为多个)的链接先替换掉,如 <a href=''>和尚</a> 还原为 "和尚". 这样再次修改的时候,就不会出现这种情况了。特来请教大家,此正则怎么写?
解决方案 »
- gridview 导出 excel 问题
- 关于动态添加控件的问题
- 应输入单行注释或行尾? 这也有错?
- DropDownList控件怎么老象一个"坑"似的?
- asp.net初学者,介绍一个比较好的打印控件,谢谢了!
- 关于隐藏代码,隐藏页,安全问题的提问
- 100分,初学XML在ASP.NET中的应用,遇到XML 属性问题?
- 如何在一个页面强制使别一个页面进行涮新?
- 关于运行问题
- 我 的程序中有一ActiveX 控件,ActiveX控件要传一参数给C# Server程序,有什么解决办法吗
- Visual Studio 2005 Web编程中,如何在设计视窗和源窗体中互相交换数据
- SiteMapProvider 问题
str.Replace("和尚"," <a href=''>和尚 </a>");
http://tech.ddvip.com/2009-05/1242879926120281.html(正则表达式)
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;namespace ConsoleApplication1
{
class Test
{
static void Main()
{
string[] str = new string[] { @"<a href=''>和尚 </a>", @"<a href=''>xxxxx</a>" };
Regex re = new Regex(@"<a[^>]*>(?<TK>[^<]*)</a>");
foreach (string s in str)
{
if (re.Match(s).Success)
Console.WriteLine(re.Match(s).Groups["TK"].Value); } }
}
}
"<a[^>]*>[^<]*</a>";//匹配 <a href=''> 和尚 </a>
"(?<=<a[^>]*>)[^<]*(?=</a>)";//匹配<a href=''> 和尚 </a> 中的 和尚
Regex reg = new Regex(@"(?<!<a[^>]*>)和尚(?!</a>)");
string result = reg.Replace(test, "<a href=''>和尚</a>");