Esempio n. 1
0
 private string TranslateToNETRegex(VBALikeParser.LikePatternStringContext likePattern)
 {
     StringBuilder regexStr = new StringBuilder();
     foreach (var element in likePattern.likePatternElement())
     {
         if (element.likePatternChar() != null)
         {
             regexStr.Append(element.likePatternChar().GetText());
         }
         else if (element.QUESTIONMARK() != null)
         {
             regexStr.Append(".");
         }
         else if (element.HASH() != null)
         {
             regexStr.Append(@"\d");
         }
         else if (element.STAR() != null)
         {
             regexStr.Append(@".*?");
         }
         else
         {
             var charlist = element.likePatternCharlist().GetText();
             if (charlist.StartsWith("[!"))
             {
                 charlist = "[^" + charlist.Substring(2);
             }
             regexStr.Append(charlist);
         }
     }
     // Full string match, e.g. "abcd" should NOT match "a.c"
     var regex = "^" + regexStr.ToString() + "$";
     return regex;
 }