代码改变世界

掩码转换为正则表达式

2012-06-19 10:44  小sa  阅读(709)  评论(0)    收藏  举报
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
bool MatchCheck(string sn,string pattern)
     {
         return Regex.IsMatch(sn, pattern, RegexOptions.None);
     }
      
     /// <summary>
     ///  掩码转换为正则表达式
     /// </summary>
     /// <param name="msk">掩码 CTH********F2GV**</param>
     /// <param name="token">掩码符号* #</param>
     /// <returns>regexp表达式</returns>
     public static string MaskToRegex(string msk,string token)
     {
         if (string.IsNullOrEmpty(msk) || string.IsNullOrEmpty(token))
             return string.Empty;
         MatchCollection mac = Regex.Matches(msk, string.Format(@"\b(\w+)|([{0}]+)|\b",token));
         string regex = string.Empty;
         foreach (Match x in mac)
         {
             if (!string.IsNullOrEmpty(x.Value))
             {
                 if (Regex.IsMatch(x.Value, @"\w+"))
                 {
                     regex += x.Value;                       
                 }
                 if (Regex.IsMatch(x.Value, string.Format(@"[{0}]+",token)))
                 {
                     string tempmsk = string.Format(@"\w{0}", "{" + x.Value.Length + "}");                       
                     regex += tempmsk;
                 }
             }
         }
          
         string pattern = string.Format("^{0}$", regex);
         return pattern;
     }

  

点击右上角即可分享
微信分享提示