1

我的程序旨在根据特定关键字在字符串中搜索图像 url。它实际上工作正常,唯一的问题是“找不到搜索”错误。出于某种原因,它就像代码没有到达这个“如果”并且如果没有找到匹配项(最后一个如果)也不会返回任何错误。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Text.RegularExpressions;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            using (WebClient client = new WebClient()) 
            {
                int count = 0;
                Regex SearchItem = new Regex("http://.+?\\.jpg");
                string SearchValue = "fgdfgdf";
                string htmlCode = "fsdflkjsdfkjsdfkjdsflkhttp://www.dssdtanya.jpgfsdf;ldsmfs;dlfms;dmfs";
                Match matches = SearchItem.Match(htmlCode);

                while (matches.Success) 
                {
                    string test = matches.ToString();
                    if (test.Contains(SearchValue))
                    {
                        count++;
                        Console.WriteLine("Result #{0}: '{1}' found in the source code at position {2}.",count, matches.Value, matches.Index);
                        matches = matches.NextMatch();
                    }
                }

                Console.WriteLine(count);
                if (count == 0) { Console.WriteLine("search not found."); }
                Console.ReadKey();
            }
        }
    }
}
4

1 回答 1

0

如果第一个测试不包含搜索值,您的程序将进入无限循环。将您的代码更改为:

while (matches.Success)
{
    string test = matches.ToString();
    if (test.Contains(SearchValue))
    {
        count++;
        Console.WriteLine("Result #{0}: '{1}' found in the source code at position {2}.", count, matches.Value, matches.Index);
    }
    matches = matches.NextMatch(); //moved this outside the if
}
于 2013-10-04T15:27:16.410 回答