Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ RegexReplacement()

System.Text.RegularExpressions.RegexReplacement.RegexReplacement ( string rep,
RegexNode concat,
Hashtable _caps )
inline

Definition at line 26 of file RegexReplacement.cs.

27 {
28 if (concat.Type != 25)
29 {
30 throw ThrowHelper.CreateArgumentException(ExceptionResource.ReplacementError);
31 }
34 FourStackStrings fourStackStrings = default(FourStackStrings);
38 int num = concat.ChildCount();
39 for (int i = 0; i < num; i++)
40 {
41 RegexNode regexNode = concat.Child(i);
42 switch (regexNode.Type)
43 {
44 case 12:
45 valueStringBuilder.Append(regexNode.Str);
46 break;
47 case 9:
49 break;
50 case 13:
51 {
52 if (valueStringBuilder.Length > 0)
53 {
55 valueListBuilder.Append(valueStringBuilder.ToString());
57 }
58 int num2 = regexNode.M;
59 if (_caps != null && num2 >= 0)
60 {
61 num2 = (int)_caps[num2];
62 }
63 valueListBuilder2.Append(-5 - num2);
64 break;
65 }
66 default:
67 throw ThrowHelper.CreateArgumentException(ExceptionResource.ReplacementError);
68 }
69 }
70 if (valueStringBuilder.Length > 0)
71 {
73 valueListBuilder.Append(valueStringBuilder.ToString());
74 }
75 Pattern = rep;
76 _strings = valueListBuilder.AsSpan().ToArray();
77 _rules = valueListBuilder2.AsSpan().ToArray();
78 valueListBuilder2.Dispose();
79 }

References System.Text.RegularExpressions.RegexReplacement._rules, System.Text.RegularExpressions.RegexReplacement._strings, System.Text.RegularExpressions.ThrowHelper.CreateArgumentException(), System.Text.RegularExpressions.i, and System.Text.RegularExpressions.RegexReplacement.Pattern.

Referenced by System.Text.RegularExpressions.RegexReplacement.Replace().