文本:百度好啊,百度空间妙啊,百度空间应用呱呱叫啊。百度是全球最大的中文搜索引擎下面每个只替换二次,说明问题。
替换:'百度' 替换成 '<A href=$>百度</A>'
'百度空间' 替换成 '<a href=#>百度空间</a>'问题:
如果从'百度空间'开始第一个替换,第二个是'百度',就会成这样。文本替换为:<A href=$>百度</A>好啊,<a href=#><A href=$>百度</A>空间</a>妙啊,<a href=#>百度空间</a>应用呱呱叫啊。百度是全球最大的中文搜索引擎总结:里面问题就是最短的“百度”会匹配“百度空间”前的两个字,从而致使“百度空间”对应的链接失效,而且html代码嵌套错误。题外话:以前做替换。我喜欢用从字符length长的开始,逐步到short。但是那只能避免一次替换的错误。而不能避免像这样长篇幅重复替换。
有的朋友会说,你不如从短到长,这样还是有问题。=====================================================
C#代码如下:
private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Text = "百度好啊,百度空间妙啊,百度空间应用呱呱叫啊。百度是全球最大的中文搜索引擎,占有 70%以上的网页搜索市场份额.百度致力于让网民更便捷地获取信息,找到所求,主要提供网页、MP3、图片、视频、新闻等搜索服务,以及贴吧、知道、百度空间等搜索社区产品.";
Regex re = new Regex("(百度空间)");
richTextBox1.Text = re.Replace(richTextBox1.Text, "<a href=#>百度空间</a>", 2);
Regex re1 = new Regex("百度");
richTextBox1.Text = re1.Replace(richTextBox1.Text, "<A href=$>百度</A>", 2);
}==========================================
希望大家给点处理办法。
替换:'百度' 替换成 '<A href=$>百度</A>'
'百度空间' 替换成 '<a href=#>百度空间</a>'问题:
如果从'百度空间'开始第一个替换,第二个是'百度',就会成这样。文本替换为:<A href=$>百度</A>好啊,<a href=#><A href=$>百度</A>空间</a>妙啊,<a href=#>百度空间</a>应用呱呱叫啊。百度是全球最大的中文搜索引擎总结:里面问题就是最短的“百度”会匹配“百度空间”前的两个字,从而致使“百度空间”对应的链接失效,而且html代码嵌套错误。题外话:以前做替换。我喜欢用从字符length长的开始,逐步到short。但是那只能避免一次替换的错误。而不能避免像这样长篇幅重复替换。
有的朋友会说,你不如从短到长,这样还是有问题。=====================================================
C#代码如下:
private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Text = "百度好啊,百度空间妙啊,百度空间应用呱呱叫啊。百度是全球最大的中文搜索引擎,占有 70%以上的网页搜索市场份额.百度致力于让网民更便捷地获取信息,找到所求,主要提供网页、MP3、图片、视频、新闻等搜索服务,以及贴吧、知道、百度空间等搜索社区产品.";
Regex re = new Regex("(百度空间)");
richTextBox1.Text = re.Replace(richTextBox1.Text, "<a href=#>百度空间</a>", 2);
Regex re1 = new Regex("百度");
richTextBox1.Text = re1.Replace(richTextBox1.Text, "<A href=$>百度</A>", 2);
}==========================================
希望大家给点处理办法。
Regex re1 = new Regex("百度");
Regex re2 = new Regex(@"<A[^>]*>百度</A>空间");
str = re1.Replace(str, @"<A href=$>百度</A>");
str = re2.Replace(str, @"<a href=#>百度空间 </a>");
MessageBox.Show(str);
String S = "百度好啊,百度空间妙啊,百度空间应用呱呱叫啊。百度是全球最大的中文搜索引擎";
S = S.Replace("百度空间", "<a href=#>[[[]]]]空间 </a>")
.Replace("百度", "<A href=$>百度 </A>").Replace("[[[]]]]", "百度");
MessageBox.Show(S);
Regex re1 = new Regex("(^)|([^>])百度");
s = re1.Replace(s, "$2<a>百度</a>");