RegEx::ReplaceCallback (open)

Replace every occurrence of a regular expression by the result of a callback function

Syntax

LOADLIB "wh::regex.whlib";

STRING FUNCTION ReplaceCallback(STRING input, FUNCTION PTR replacefunc)

Parameters

STRING input

Input to do the replace in

FUNCTION PTR replacefunc

String function that takes a match and returns a replacement

Return value

STRING

Input with every occurance of the regular expression replaced

Description

This function can be used to find every occurence of a regular expression within a string, and call a function for each match. If the function returns a string, the matching occurence is replaced by the function result. If the callback function is a macro, the text is not replaced. The callback function must take four arguments: a string which contains the matching text from the input; a string array containing a string for each subexpression (empty if the subexpression was not matched); an integer with the position of the matched text within the input (before replacement); and a string containing the original input text. If the global flag was set on the regular expression, the callback is only called for the first match.