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; }
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)); }
public static ktString Replace(ktString Pattern, ktString Haystack, ktRE_MatchEvaluator Evaluator, int Count) { ktRegEx RE = new ktRegEx(Pattern); return RE.Replace(Haystack, Evaluator, Count); }
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; }
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); }