文章分类

站点统计

  • 分类总数: 13 个
  • 文章总数: 145 篇
  • 评论总数: 47 条
  • 附件总数: 59 个
  • 建站日期: 2008-08-18
  • 访问总数: 472873 人次
  • RSS订阅: 文章|评论

Wildcard Matching in C#

KY8 于 2009-02-06 07:24:46 发表.Net

  1. public static bool Wildcard(string pattern, string input) 
  2.     return Wildcard(pattern, 0, input, 0, false); 
  3.  
  4. public static bool Wildcard(string pattern, string input, bool insensitive) 
  5.     return Wildcard(pattern, 0, input, 0, insensitive); 
  6.  
  7. private static bool Wildcard(string pattern, int p, string input, int i, bool insensitive) 
  8.     for(; ; ) 
  9.     { 
  10.         char ic = input[i]; 
  11.         char pc = pattern[p]; 
  12.         switch(pc) 
  13.         { 
  14.             case '?'
  15.                 break
  16.  
  17.             case '*'
  18.                 p++; 
  19.                 for(int j = i; j < input.Length; j++) 
  20.                 { 
  21.                     if(Wildcard(pattern, p, input, j, insensitive)) 
  22.                     { 
  23.                         return true
  24.                     } 
  25.                 } 
  26.                 return false
  27.  
  28.             default
  29.                 if(insensitive) 
  30.                 { 
  31.                     ic = char.ToLower(ic); 
  32.                     pc = char.ToLower(pc); 
  33.                 } 
  34.                 if(ic != pc) 
  35.                 { 
  36.                     return false
  37.                 } 
  38.                 break
  39.         } 
  40.         i++; 
  41.         p++; 
  42.         if(p >= pattern.Length) 
  43.         { 
  44.             if(i >= input.Length) 
  45.             { 
  46.                 return true
  47.             } 
  48.             return false
  49.         } 
  50.         else if(i >= input.Length) 
  51.         { 
  52.             return false
  53.         } 
  54.     } 
被阅648次, 0票WildCard 发表评论
1 / 1 / 1 | « 1 » |
Powered by MiniBoke v2.0.0.8 Build 0828

Copyright © 2008 开源吧!. All rights reserved.

粤ICP备07500939号