在做提取网页正文的东西,用的HtmlAgilityPack 可是通过里面Document.InnerText()方法取出来的内容含有网页的注释信息,想把这些内容去除。如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">搜狐-中国最大的门户网站<!--2008.1.1-->
.
.
.
<!--asfadsfg-->然后我是想通过正则表达式找出里面的注释以及第一段的信息,再将其删除,现在的正则表达式是这么写的:string patternNote = @"(<!--[\S\s].*?-->)|(<![\S\s].*?>)";
可是这样不能把<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
给匹配到,如果不用 . 可以找到换行的 可是是最大匹配 我想做最小匹配不知道怎么做,求大神们帮忙
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">搜狐-中国最大的门户网站<!--2008.1.1-->
.
.
.
<!--asfadsfg-->然后我是想通过正则表达式找出里面的注释以及第一段的信息,再将其删除,现在的正则表达式是这么写的:string patternNote = @"(<!--[\S\s].*?-->)|(<![\S\s].*?>)";
可是这样不能把<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
给匹配到,如果不用 . 可以找到换行的 可是是最大匹配 我想做最小匹配不知道怎么做,求大神们帮忙
解决方案 »
- 哪个高手,能把这个C#给弄成VB.NET?下载图用
- c#操作access和xml哪个效率高?
- C#正则表达式提取网页内容,60分!!
- 求一个模拟Iphone触摸屏,拉动DataGridView列表的方法
- datagridview 如何判断选中的是最后一行
- 正则表达式 很奇怪 请教saucer专家
- 请教一个关于form的size的问题!!!谢谢各位高手来解答!!!
- 关于asp.NET中不能把SqlDataReader返回值赋给变量的问题,着急啊,请高手给看看!
- Serialport 串口通信 急急 坐等高手
- 怎样让控件enable=false时,能够显示tooltip?
- 无法将1900年1月2日这样的日期格式存入SQL 数据库中 求高人指点
- 急:关于C#数据封送问题。。。。。。。求高人解答
string str = @"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN""
""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">sdjfksjfdlkdsjf<!--2008.1.1-->sjdfkjdd"; Regex regex = new Regex(@"(?is)<[^>]*?>");
MatchCollection mc = regex.Matches(str);
foreach (Match item in mc)
Console.WriteLine("匹配项:"+item.Value); Console.WriteLine();
str = regex.Replace(str, "");
Console.WriteLine("去除注释之后:"+str); Console.Read();
string patternNote = @"(<!--[\S\s].*?-->)|(<![\S\s].*?>)";
用了[\s\S]表示任意字符,后面就不该再加小数点.了,小数点.匹配除换行符\n外的任意字符,所以这里匹配不了换行,去掉小数点可以满足你的要求
string patternNote = @"(<!--[\S\s]*?-->)|(<![\S\s]*?>)";
不过这样写效率比较低,可以用排除型字符组
string patternNote = @"<![^>]*>";PS:由于这里不涉及到字母,也不涉及到小数点,所以不需要使用(?is)