0

我需要解释一下,至于上帝的爱,我不知道出了什么问题。我正在通过 c#、标准 Httpwebrequest 下载网页。我得到了完整的 HTML 代码并将其保存到一个字符串中。然后,我为其设置了一个 webbrowsers 数据,当我单击元素时,我得到了 Html,例如:

<strong>Copyright 2011. All Rights Reserved.</strong>

当我让我的脚本比较下载的页面集合是否存在这个确切的字符串时,我得到了错误,但是如果我在 RichTextBox 中打开这个集合中的一个,然后开始比较其余的,它确实匹配。谁能告诉我为什么??我已经尝试调试和观察元素,没有什么是空的,甚至将值复制到记事本以手动比较文本,我每次都得到一个匹配,所以怎么了?编码?漏洞?我真的不知道。

我从以下位置得到这个例子:http://web.archive.org/web/20110208042711/http://coralifeaqualight.com/

比较页面是网站上的所有本地页面。这里的答案将不胜感激,它看起来很简单,为什么它不起作用?是的,我尝试在检查时在开头添加一个@。

4

3 回答 3

2

在最坏的情况下,您可以尝试在不使用 Contains() 的情况下获得相同的结果。这是一个例子。

string genericString = "My string";
bool contains = genericString.IndexOf("my", StringComparison.OrdinalIgnoreCase) >= 0;
于 2013-02-05T20:58:20.983 回答
2

您可以通过这种方式检查是否存在干扰匹配的隐藏字符:

using System.Text.RegularExpressions;

...

string output = Regex.Replace(input, "[^\u0021-\u007E]","");

如果它们在此之后匹配,那么你知道有一些字符把你弄乱了(换行,也许?)。

于 2013-02-05T21:04:49.310 回答
1

我的猜测是,您正在查看数据的编辑器中没有显示一个字符。尝试将确切的数据复制到 TextPad 之类的东西中,看看字符串中是否有任何额外的字符。

这是没有代码我能做的最好的事情

于 2013-02-05T20:41:31.877 回答