public static void Parse (WildcardPattern pattern, WildcardPatternParser parser)
 {
     parser.BeginWildcardPattern(pattern);
     bool isEscaped = false, isBracketExpr = false, isBracketExprStart = false;
     StringBuilder sbBracketContents = null, sbBracketOperators = null;
     foreach (char ch in pattern.Pattern) {
         if (isBracketExpr) {
             if (ch == ']' && !isBracketExprStart && !isEscaped) {
                 isBracketExpr = false;
                 parser.AppendBracketExpression(sbBracketContents.ToString(), sbBracketOperators.ToString(), pattern.Pattern);
                 sbBracketContents = null;
                 sbBracketOperators = null;
             }
             else if (ch != WildcardPattern.EscapeChar || isEscaped) {
                 sbBracketContents.Append(ch);
                 sbBracketOperators.Append(ch == '-' && !isEscaped ? '-' : ' ');
             }
             isBracketExprStart = false;
         }
         else if (ch == '*' && !isEscaped) {
             parser.AppendAsterix();
         }
         else if (ch == '?' && !isEscaped) {
             parser.AppendQuestionMark();
         }
         else if (ch == '[' && !isEscaped) {
             isBracketExpr = true;
             isBracketExprStart = true;
             sbBracketContents = new StringBuilder();
             sbBracketOperators = new StringBuilder();
         }
         else if (ch != WildcardPattern.EscapeChar || isEscaped) {
             parser.AppendLiteralCharacter(ch);
         }
         isEscaped = ch == WildcardPattern.EscapeChar && !isEscaped;
     }
     if (isBracketExpr)
         throw NewWildcardPatternException(pattern.Pattern);
     if (isEscaped && !pattern.Pattern.Equals(new string(WildcardPattern.EscapeChar, 1), StringComparison.Ordinal))
         parser.AppendLiteralCharacter(pattern.Pattern[pattern.Pattern.Length - 1]);
     parser.EndWildcardPattern();
 }
 public static PatternElement[] Parse (WildcardPattern pattern, CharacterNormalizer characterNormalizer)
 {
     var parser = new MyWildcardPatternParser {
         _characterNormalizer = characterNormalizer,
         _regexOptions = WildcardPatternToRegexParser.TranslateWildcardOptionsIntoRegexOptions(pattern.Options)
     };
     Parse(pattern, parser);
     return parser._patternElements.ToArray();
 }
 internal WildcardPatternMatcher (WildcardPattern wildcardPattern)
 {
     _characterNormalizer = new CharacterNormalizer(wildcardPattern.Options);
     _patternElements = MyWildcardPatternParser.Parse(wildcardPattern, _characterNormalizer);
 }
 protected override void BeginWildcardPattern (WildcardPattern pattern)
 {
     regexPattern = new StringBuilder((pattern.Pattern.Length * 2) + 2);
     regexPattern.Append('^');
     regexOptions = TranslateWildcardOptionsIntoRegexOptions(pattern.Options);
 }
 public static Regex Parse (WildcardPattern wildcardPattern)
 {
     Regex regex;
     var parser = new WildcardPatternToRegexParser();
     Parse(wildcardPattern, parser);
     try {
         regex = new Regex(parser.regexPattern.ToString(), parser.regexOptions);
     }
     catch (ArgumentException) {
         throw NewWildcardPatternException(wildcardPattern.Pattern);
     }
     return regex;
 }
 protected virtual void BeginWildcardPattern (WildcardPattern pattern)
 {}
Beispiel #7
0
 internal WildcardPatternMatcher(WildcardPattern wildcardPattern)
 {
     _characterNormalizer = new CharacterNormalizer(wildcardPattern.Options);
     _patternElements     = MyWildcardPatternParser.Parse(wildcardPattern, _characterNormalizer);
 }