Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串比较没有匹配项(使用正则表达式过滤器)&;仅在新值时通知_C#_.net_Regex_String_Compare - Fatal编程技术网

C# 字符串比较没有匹配项(使用正则表达式过滤器)&;仅在新值时通知

C# 字符串比较没有匹配项(使用正则表达式过滤器)&;仅在新值时通知,c#,.net,regex,string,compare,C#,.net,Regex,String,Compare,我正在开发一个应用程序,检查一个分类广告网站的最新广告。它应该通知我,当有一个新的广告在一个特殊的价格 i是我准备支付的价格值,m1是网站上的所有价格,此外,它在文本框中显示结果。 出于某种原因,这种比较不起作用。最后,我想进一步修改,这样它只会通知我新的值 为了澄清我的意思:产品的价格是一个字符串,我知道找到便宜价格的唯一方法是比较两个字符串:一个是原始价格,另一个是我准备支付的价格 我希望现在我的意思清楚了:) 点击按钮: { int i =0; List<string

我正在开发一个应用程序,检查一个分类广告网站的最新广告。它应该通知我,当有一个新的广告在一个特殊的价格

i
是我准备支付的价格值,
m1
是网站上的所有价格,此外,它在
文本框中显示结果。
出于某种原因,这种比较不起作用。最后,我想进一步修改,这样它只会通知我新的值

为了澄清我的意思:产品的价格是一个字符串,我知道找到便宜价格的唯一方法是比较两个字符串:一个是原始价格,另一个是我准备支付的价格

我希望现在我的意思清楚了:)

点击按钮

{
    int i =0;
    List<string> codes = new List<string>();
    WebClient web = new WebClient();
    String html = web.DownloadString("http://www.dhd24.com/azl/index.php?sortorder=51&zeilen_pro_seite=60&suchstring=graupapagei&plz=&umkreis=20&classid=0&nav=classtypeid%3AMQ%3B");
    MatchCollection m1 = Regex.Matches(html, @"(.....,-)", 
        RegexOptions.Singleline);               

    while (i < 700) {
        foreach (Match m in m1) {
            i++;
            string test = (i.ToString() + ",-");
            string d = test.Replace("  ", string.Empty);
            string f = m.Groups[1].Value.Replace("  ", string.Empty); ;

            if (d == f)
                MessageBox.Show("found one!");

            string code = m.Groups[1].Value;
            codes.Add(code);
        }                           
    }      

    listBox1.DataSource = codes;  
}
{
int i=0;
列表代码=新列表();
WebClient web=新的WebClient();
字符串html=web.DownloadString(“http://www.dhd24.com/azl/index.php?sortorder=51&zeilen_pro_seite=60&suchstring=graupapagei&plz=&umkreis=20&classid=0&nav=classtypeid%3AMQ%3B");
MatchCollection m1=Regex.Matches(html,@“(…,-)”,
RegexOptions.Singleline);
而(i<700){
foreach(匹配m1中的m){
i++;
字符串测试=(i.ToString()+“,-”;
字符串d=test.Replace(“,string.Empty”);
字符串f=m.Groups[1]。Value.Replace(“,string.Empty);
如果(d==f)
MessageBox.Show(“找到一个!”);
字符串代码=m.Groups[1]。值;
代码。添加(代码);
}                           
}      
listBox1.DataSource=代码;
}

欢迎来到StackOverFlow!从你的帖子中不清楚什么样的比较不适合你。这是新价格与旧价格相比的价格吗?也无需回复此评论-只需编辑您的帖子,以便我们更好地理解您的问题。您的正则表达式似乎不正确。如果要选择十进制数,请使用
/d+(./d{2,3})
。整个方法听起来有点错误
0100.00
不等于
100
。我更喜欢写一个传递数字和计算值的方法,而不是简单的数字格式。我用“/d+(/d{2,3})”尝试过,但用这个方法,我的文本框只显示了许多空行。我不知道我做错了什么:/