在字符串中找到图片网址

时间:2013-10-04 15:19:30

标签: c#

我的程序旨在根据特定关键字在字符串中搜索图像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();
            }
        }
    }
}

1 个答案:

答案 0 :(得分: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
}