日期:2014-05-17  浏览次数:20407 次

给文章专有名词加链接
有一专有名词表
id name
1   张一
2   李四
.
.
.

在提交文章的需要将文章中内容包含有上面表的名词加一个链接,如:
文章内容是这样的:  你好张一我很好,我是李四
替换后是这样的:    你好<a href='?id=1'>张一</a>我很好,我是<a href='?id=2'>李四</a>

请问一下,该怎么实现

------解决方案--------------------
专有名词里面有链接吗。替换一下
------解决方案--------------------
 DataTable dt = new System.Data.DataTable();
            dt.Columns.Add("id", typeof(int));
            dt.Columns.Add("name", typeof(string));
            dt.Rows.Add(1, "张一");
            dt.Rows.Add(2, "李四");
            string str = " 你好张一我很好,我是李四";
            string pat = string.Join("
------解决方案--------------------
", dt.AsEnumerable().Select(t => t.Field<string>("name")).ToArray());
            str = Regex.Replace(str, pat, delegate(Match m)
            {
                return @"<a href=""XXX.aspx?id=" + dt.Select("name='" + m.Value+"'").First().Field<int>("id") + "\">" + m.Value + "</a>";
            });

------解决方案--------------------
  DataTable dt = new DataTable();
            dt.Columns.Add("id");
            dt.Columns.Add("name");
            dt.Rows.Add(new object[]{"1", "张一"});
            dt.Rows.Add(new object[] { "2", "李四" });
            dt.Rows.Add(new object[] { "3", "王五" });

            string strText = " 你好张一我很好,我是李四,张一说,带上王五吧";
            foreach (DataRow dr in dt.Rows)
            {
                strText=strText.Replace(dr["name"].ToString(),string.Format("<a href='?id={0}'>{1}</a>",dr["id"],dr["name"]));
            }