我在做一个扫描起点的小程序,用来做本地搜索,比方说搜索字数30w-40w之间的书籍等等,现在有个正则表达式稿不定了数据 类别:<a href=\"listbook.asp?bl_class=1\" target=\"_blank\">西方奇幻</a> | 专栏作者:代码rExp=" 类别:<a href=\"listbook.asp?bl_class=(?:[\\d]+)\" target=\"_blank\">([^<]*)</a> \\| 专栏作者:";
m=Regex.Match(resContent,rExp,RegexOptions.Singleline);
if(m.Success)
SmallClass=m.Result("$1");
m=Regex.Match(resContent,rExp,RegexOptions.Singleline);
if(m.Success)
SmallClass=m.Result("$1");
解决方案 »
- 求~~高手!。。导出的Excel怎么保存在项目中的指定文件夹中??、
- 怎么声明一个控件变量使得整个窗口可用?
- c# winform调用adaptive server anywhere数据库存储过程
- 在 System.InvalidCastException 中第一次偶然出现的“xxx.dll”类型的异常 的问题??
- C#while循环输出图片。
- 借书证打印的实现 电子版的用c#
- vs2005 的查找-替换
- 怎么为一个C#的WEB application 程序做一个安装程序?
- Excel存入数据库
- 读PSD图片
- 救命啊!我想在xml里取某个节点的值,但总是报错,请大家帮忙啊!
- 在winform怎么在菜单项中添加图标
string test = "数据 类别:<a href=\"listbook.asp?bl_class=1\" target=\"_blank\">西方奇幻</a> | 专栏作者:";
string result = "";
Match m = Regex.Match(test, @"<a\s+href=""[^""]*?(?<num>\d+)""[^>]*>", RegexOptions.IgnoreCase);
if (m.Success)
{
result = m.Groups["num"].Value;
}如果不是,具体说明一下
listbook.asp?bl_class=
这一部分,那可以这样试下,其中test换成你的完整网页代码
string test = "数据 类别:<a href=\"listbook.asp?bl_class=1\" target=\"_blank\">西方奇幻</a> | 专栏作者:";
string num = "";
string text = "";
Match m = Regex.Match(test, @"<a\s+href=""listbook.asp\?bl_class=(?<num>\d+)""\s+target=""_blank"">(?<text>[^<]*)</a>", RegexOptions.IgnoreCase);
if (m.Success)
{
num = m.Groups["num"].Value;
text = m.Groups["text"].Value;
}
也就是说,是一个完整的网页这一个网页中,
类别:<a href=\"listbook.asp?bl_class=1\" target=\"_blank\">西方奇幻</a> | 专栏作者:
这一段文字仅会出现一次我要的 是 listbook.asp?bl_class=1 中的 1 ,还有 西方玄幻,一个是类别ID,一个是类别名称
我的错误是没有注意到 listbook.asp?bl_class=1中的 ? 是特殊字符,现在加上转义就ok了
listbook.asp?bl_class=
就可以保证这个子串在页面唯一,按我上面写的,或是改成下面这个就可以了Match m = Regex.Match(test, @"<a\s+href=""listbook.asp\?bl_class=(?<num>\d+)""[^>]*>(?<text>[^<]*)</a>", RegexOptions.IgnoreCase);如果需要加上“类别:”才能保证,那就这样Match m = Regex.Match(test, @"类别:\s*<a\s+href=""listbook.asp\?bl_class=(?<num>\d+)""[^>]*>(?<text>[^<]*)</a>", RegexOptions.IgnoreCase);