private void add(string expression, object replacement)
        {
            Pattern pattern = new Pattern();

            pattern.expression  = expression;
            pattern.replacement = replacement;
            // подсчитать количество подвыражений
            // - добавить 1, потому что каждая группа сама является подвыражением
            pattern.length = GROUPS.Matches(internalEscape(expression)).Count + 1;

            // шаблон имеет дело с sup-выражениями?
            if (replacement is string && SUB_REPLACE.IsMatch((string)replacement))
            {
                string sreplacement = (string)replacement;
                // простой поиск (например, $ 2)
                if (INDEXED.IsMatch(sreplacement))
                {
                    pattern.replacement = int.Parse(sreplacement.Substring(1)) - 1;
                }
            }
            patterns.Add(pattern);
        }
Example #2
0
        private void add(string expression, object replacement)
        {
            Pattern pattern = new Pattern();

            pattern.expression  = expression;
            pattern.replacement = replacement;
            //count the number of sub-expressions
            // - add 1 because each group is itself a sub-expression
            pattern.length = GROUPS.Matches(internalEscape(expression)).Count + 1;

            //does the pattern deal with sup-expressions?
            if (replacement is string && SUB_REPLACE.IsMatch((string)replacement))
            {
                string sreplacement = (string)replacement;
                // a simple lookup (e.g. $2)
                if (INDEXED.IsMatch(sreplacement))
                {
                    pattern.replacement = int.Parse(sreplacement.Substring(1)) - 1;
                }
            }

            patterns.Add(pattern);
        }