Пример #1
0
        protected static ktString HandleStringFirst(ktString Pattern, object Obj, ktString Haystack)
        {
            if ((Obj.GetType() == typeof(ktString)) ||
                (Obj.GetType() == typeof(string)))
            {
                return Replace(Pattern, Haystack, Obj.ToString());
            }
            else if (Obj.GetType() == typeof(ktRE_MatchEvaluator))
            {
                ktRE_MatchEvaluator Ev = (ktRE_MatchEvaluator)Obj;
                return Replace(Pattern, Haystack, Ev);
            }
            else if (Obj.GetType() == typeof(ktRegEx))
            {
                ktRegEx RE = (ktRegEx)Obj;
                ktRE_MatchEvaluator Ev = new ktRE_MatchEvaluator(
                    delegate(ktRE_Match Match)
                    {
                        return RE.Replace(Pattern, Match.Value);
                        //return RE.Replace( Match.Value, Pattern );
                    });

                return RE.Replace(Haystack, Ev);
            }

            return Haystack;
        }
Пример #2
0
        public ktString Replace(ktString Haystack, ktRE_MatchEvaluator Evaluator, int Count, int StartAt)
        {
            // If we have a pattern?!
            if ((m_Pattern.IsEmpty()) || (m_P == null))
            {
                // Set error (throw exeption??) and return false
                throw new ktError("ktRegExp::Replace(): The pattern is not set!", ktERR.NOTSET);
            }

            MatchEvaluator Ev = new MatchEvaluator(delegate(Match M)
            {
                return Evaluator(new ktRE_Match(M));
            });
            return new ktString(m_P.Replace(Haystack, Ev, Count, StartAt));
        }
Пример #3
0
        public static ktString Replace(ktString Pattern, ktString Haystack, ktRE_MatchEvaluator Evaluator, int Count)
        {
            ktRegEx RE = new ktRegEx(Pattern);

            return RE.Replace(Haystack, Evaluator, Count);
        }
Пример #4
0
        public static ktList Replace(ktString Pattern, ktString Haystack, ktRE_MatchEvaluator[] Evaluators)
        {
            ktList Results = new ktList();

            foreach (ktRE_MatchEvaluator Evaluator in Evaluators)
            {
                Results.Add(Replace(Pattern, Haystack, Evaluator));
            }

            return Results;
        }
Пример #5
0
        public ktString Result(ktString Replacement)
        {
            ktRE_MatchEvaluator Ev = new ktRE_MatchEvaluator(delegate(ktRE_Match Match)
            {
                ktString Val = new ktString();

                if (Match.Value.StartsWith("$", out Val))
                {
                    int iVal = Val.ToInt();

                    if (iVal < Count)
                    {
                        Val = m_Groups[iVal].Value;
                    }
                    else
                    {
                        Val = "";
                    }
                }

                return Val;
            });
            return ktRegEx.Replace(@"\$\d", Replacement, Ev);
        }