System.Text.RegularExpressions.RegexReplacement.ReplacementImpl C# (CSharp) Method

ReplacementImpl() private method

Given a Match, emits into the StringBuilder the evaluated substitution pattern.
private ReplacementImpl ( StringBuilder sb, Match match ) : void
sb StringBuilder
match Match
return void
        private void ReplacementImpl(StringBuilder sb, Match match)
        {
            for (int i = 0; i < _rules.Count; i++)
            {
                int r = _rules[i];
                if (r >= 0)   // string lookup
                    sb.Append(_strings[r]);
                else if (r < -Specials) // group lookup
                    sb.Append(match.GroupToStringImpl(-Specials - 1 - r));
                else
                {
                    switch (-Specials - 1 - r)
                    { // special insertion patterns
                        case LeftPortion:
                            sb.Append(match.GetLeftSubstring());
                            break;
                        case RightPortion:
                            sb.Append(match.GetRightSubstring());
                            break;
                        case LastGroup:
                            sb.Append(match.LastGroupToStringImpl());
                            break;
                        case WholeString:
                            sb.Append(match.GetOriginalString());
                            break;
                    }
                }
            }
        }

Usage Example

Esempio n. 1
0
        /// <summary>
        /// Returns the expansion of the passed replacement pattern. For
        /// example, if the replacement pattern is ?$1$2?, Result returns the concatenation
        /// of Group(1).ToString() and Group(2).ToString().
        /// </summary>
        public virtual string Result(string replacement)
        {
            if (replacement == null)
            {
                throw new ArgumentNullException(nameof(replacement));
            }

            if (_regex == null)
            {
                throw new NotSupportedException(SR.NoResultOnFailed);
            }

            // Gets the weakly cached replacement helper or creates one if there isn't one already.
            RegexReplacement repl = RegexReplacement.GetOrCreate(_regex._replref !, replacement, _regex.caps !, _regex.capsize, _regex.capnames !, _regex.roptions);
            var vsb = new ValueStringBuilder(stackalloc char[ReplaceBufferSize]);

            repl.ReplacementImpl(ref vsb, this);
            return(vsb.ToString());
        }
All Usage Examples Of System.Text.RegularExpressions.RegexReplacement::ReplacementImpl