首页 新闻 会员 周边

正则表达式在测试器中可以匹配结果,但是在程序里匹配失败。

-1
悬赏园豆:5 [已解决问题] 解决于 2013-01-31 17:32

正则表达式:<div\sstyle="clear:both"></div>(.+?)<p\salign="center">

 

在程序里是这样使用的:

StreamReader reader = new StreamReader(stream);
string content = reader.ReadToEnd();
string strReg = "<div\\sstyle=\"clear:both\"></div>(.+?)<p\\salign=\"center\">";
Regex regex = new Regex(strReg);
Match match = regex.Match(content);
string strContent = match.Groups[1].Value; //string.Empty

断点调试,把content与strReg 重新放在测试器中,正常匹配结果,但是,程序里strContent为空!百思不得其解!

dotnetgeek的主页 dotnetgeek | 菜鸟二级 | 园豆:482
提问于:2012-09-09 17:44
< >
分享
最佳答案
0

网页中很多换行什么的,你这种写法, 遇到换行就完蛋。

.+最多匹配一行。

这东西还是看具体代码省事

收获园豆:5
无造 | 菜鸟二级 |园豆:207 | 2012-09-10 08:04

那为什么在测试器中可以匹配?

dotnetgeek | 园豆:482 (菜鸟二级) | 2012-09-10 10:00

@蛊惑的我: 你拿到测试的时候,有些符号已经被替换了。

这个你最好还是让我看下原始数据。

无造 | 园豆:207 (菜鸟二级) | 2012-09-10 10:22

@无造: 

已经解决了!

原来我调试的时候,是直接点击那个放大镜,查看的是转义之后的文本,也就是不含有\r\n的,

谢谢了。

dotnetgeek | 园豆:482 (菜鸟二级) | 2012-09-10 14:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册