String.Contains返回False,当其为True时
本文关键字:True Contains 返回 False String | 更新日期: 2023-09-27 17:57:42
我需要解释一下,因为出于上帝的爱,我不知道出了什么问题。我正在通过标准的Httpwebrequest c#下载网页。我得到了完整的HTML代码,并将其保存到一个字符串中。然后,我将网络浏览器数据设置为它,当我点击元素时,我会得到Html,例如:
<strong>Copyright 2011. All Rights Reserved.</strong>
当我让我的脚本比较下载的页面集合是否存在这个确切的字符串时,我会得到false,但如果我在RichTextBox中打开这个集合中的一个,然后开始比较其余的,它确实匹配。有人能告诉我为什么吗??我试过调试和观察元素,没有什么是空的,甚至把值复制到记事本上手动比较文本,我每次都会得到匹配,那怎么了??编码?程序错误我真的不知道。
这个例子来自:http://web.archive.org/web/20110208042711/http://coralifeaqualight.com/
比较页面是网站上的所有本地页面。如果能在这里找到答案,我将不胜感激,它看起来如此简单,为什么不起作用?是的,我试过在检查时在开头加一个@。
在最坏的情况下,您可以尝试在不使用Contains()的情况下获得相同的结果。下面是一个例子。
string genericString = "My string";
bool contains = genericString.IndexOf("my", StringComparison.OrdinalIgnoreCase) >= 0;
您可以通过以下方式检查是否存在干扰匹配的隐藏字符:
using System.Text.RegularExpressions;
string output = Regex.Replace(input, "[^'u0021-'u007E]","");
如果他们在这之后匹配,那么你知道有一些角色把你搞砸了(也许是换行?)。
我的猜测是,在您查看数据的编辑器中没有显示一个字符。试着将确切的数据复制到像TextPad这样的东西中,看看字符串中是否有多余的字符。
这是我在没有代码的情况下能做的最好的事情