首页新闻找找看学习计划

C# 去除匹配字符的标签

0
悬赏园豆:20 [已解决问题] 解决于 2013-08-30 08:40

比如字符

string str="每个房间的布局较为紧密,因为空间有限,有门作为阻隔,房间相通。色调基本一致,白色为主色调,却不似其他的芬兰风格单调<a href=\"http://www.baidu.com\">原木家具</a>的色彩,还融入了大量的蓝色,原木家具给予人一种清透的感觉。"

怎么样查找出这个“原木家具”包括A标签的这些字符。并替换成另外的字符。

注:只匹配第一个“原木家具”就行。

落笔痕、的主页 落笔痕、 | 初学一级 | 园豆:54
提问于:2013-08-29 17:09
< >
分享
最佳答案
1

这个问题的正则表达式比较简单,难点在“只匹配第一个'原木家具'就行”。

需要用到Regex.Replace (String, String, Int32)这个方法,示例代码如下:

var regex = new Regex(@"(<a[^>]+>)原木家具</a>", RegexOptions.IgnoreCase);
Console.WriteLine(regex.Replace(str, "$1仿实木家具</a>", 1));
收获园豆:20
dudu | 高人七级 |园豆:41048 | 2013-08-30 00:14

嗯,学习了。。。。果然是高人。就是想要的。

落笔痕、 | 园豆:54 (初学一级) | 2013-08-30 08:39
其他回答(4)
0
 1 var str = "每个房间的布局较为紧密,因为空间有限,有门作为阻隔,房间相通。色调基本一致,白色为主色调,却不似其他的芬兰风格单调<a href=\"http://www.baidu.com\">原木家具</a>的色彩,还融入了大量的蓝色,原木家具给予人一种清透的感觉。";
 2             
 3 var reg = new Regex(@"<\s*a\shref=*[^>]*>([^<]|<(?!/a))*<\s*/a\s*>");
 4 var match = reg.Matches(str);
 5             
 6 foreach (Match var in match)
 7 {
 8     if (var != null)
 9     {
10         Console.WriteLine(var.Value);
11     }
12 }
13 
14 var replace = reg.Replace(str, "test");
15 Console.WriteLine(replace);        
l3oz | 园豆:586 (小虾三级) | 2013-08-29 17:25

看来没明白我所表达的意思。

支持(0) 反对(0) 落笔痕、 | 园豆:54 (初学一级) | 2013-08-30 08:38
0

Match mc = Regex.Match(你的字符串, "<(?<tag>[^\\s>]+)[^>]*>(.|\n)*?</\\k<tag>>");

mc.Success=true 表示匹配成功;

mc.Value 就是你想要的字符串。试试吧。

jone_e | 园豆:1410 (小虾三级) | 2013-08-29 17:29

看来没明白我所表达的意思。

支持(0) 反对(0) 落笔痕、 | 园豆:54 (初学一级) | 2013-08-30 08:38
0

这个完全就是正则的效果了~

或者Replace("<a href=\\"http://www.baidu.com\\">",其他字符)

幻天芒 | 园豆:36522 (高人七级) | 2013-08-29 18:45

看来没明白我所表达的意思。

支持(0) 反对(0) 落笔痕、 | 园豆:54 (初学一级) | 2013-08-30 08:38
0

哥们我建议你自己看看正则后自己写出来

Albert Fei | 园豆:2102 (老鸟四级) | 2013-08-29 19:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册