Method regexp.addReplaceFunc
Overload
Adds or replaces a function that is called when a regular expression replacement string contains ${+name} or ${+name(g)} or ${+name(g, v)}, where g is group number or name and v is any string.
public static void addReplaceFunc(string name, Func<RXMatch, int, string, string> replFunc)
Parameters
|
name (string)
A string used to identify the function. Can contain any characters except |
|
replFunc (Func<RXMatch, int, string, string>)
Callback function. Called for each found match. Returns the replacement. Parameters:
In the callback function you can use RXMatch.ExpandReplacement. |
Remarks
Useful when there is no way to use regexp.Replace overloads with a replFunc parameter. For example in Find/Replace UI.
Examples
Create new script in editor and add this code. In Properties set role editorExtension. Run.
Then in the Find panel in the replacement field you can use ${+Lower}, ${+Lower(1)}, ${+Lower(2)} etc.
regexp.addReplaceFunc("Lower", (m, g, v) => m[g].Value.Lower()); //make lowercase
Another example. Replacement could be like ${+mul(1, 10)}.
regexp.addReplaceFunc("mul", (m, g, v) => (m[g].Value.ToInt() * v.ToInt()).ToString()); //multiply by v