2013-10-04 63 views
1

我的程序旨在根据特定关键字在字符串内搜索图片url。它实际上工作正常,唯一的问题是“搜索未找到”错误。 由于某些原因,它的代码没有得到这个“if”,并且如果没有找到匹配(last if),不会返回任何错误。在字符串中查找图片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(); 
      } 
     } 
    } 
} 
+0

这可能会帮助您http://stackoverflow.com/questions/6172748/regular-expression-for-image-url – Vivekh

回答

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 
}