Extension:ReplaceSet

The ReplaceSet extension allows for patterns of text, either plain or RegExp based to be replaced. The idea is to allow many patterns to be replaced simply without overloading the Parser with dozens of ParserFunctions and allow for simple replace based syntaxes to be built such as linking certain words in a Card lore.

ReplaceSet is coded to make full use of pcre's performance. All the replacement patterns are passed together at once to pcre instead of looping over each one and doing replacements separate, this avoids shuffling between pcre and php.

Usage
Regex patterns are wrapped in !pattern! #pattern# (pattern) [pattern] or {pattern}, and may be followed with any of the flags "imsxADU" (see php's documentation on pcre modifiers for what they individually do). Patterns that do not use any of those will be considered plaintext replacements such as "|A=B|" (replace all occurrences of "A" with "B").

If you need to use an  within the pattern or text you want to replace you can wrap the pattern inside of a nowiki. ie:

Example
Would produce.

Configuration
has two configurable limitations:
 * $egReplaceSetCallLimit
 * A limit to the number of times #replaceset may be used in a page. This is set to 25 by default.


 * $egReplaceSetPregLimit
 * A limit passed to preg limiting the number of replacements within the text to replace that will be made. This is set to 50 by default.