| SYNOPSIS |
| #include <regexp.h> |
| |
| string regreplace(string txt, string pattern, |
| closure|string replacepattern, int flags) |
| |
| DESCRIPTION |
| This function looks through txt looking for the regular |
| expression pattern. If it finds it, it replaces it by the |
| replacepattern. |
| |
| The replacepattern can be a constant string, or a closure taking |
| the matched substring and the position at which it was found |
| as arguments and returning the replacement pattern string. |
| |
| The flag is a bitmask of the usual regexp options. Additionally |
| the efun recognizes RE_GLOBAL: if set, the search and replace |
| is repeated as often as the pattern matches. |
| |
| The function returns the modified string (or the original if it |
| wasn't modified). |
| |
| The function behaves like the s/pattern/replacepattern/flags |
| in editors as ed/vi or sed. The power of this function lies in |
| replacing variable strings (as opposed to regexplode, where |
| you can explode by regular expression, but not implode...) |
| |
| |
| EXAMPLES |
| string msgin; |
| |
| /* Checks msgin for the string 'tells you: ' and all following |
| * characters and encloses those characters by <underline> |
| * and </underline>. global. |
| */ |
| msgin = regreplace(msgin, "tells you: (.*)", |
| "tells you: <underline>\\1</underline>", 1); |
| |
| /* replaces all <underline> html tags by the vt100 escape |
| * sequence for underline. |
| */ |
| txt = regreplace(txt, "<underline>", "<ESC>[5m", 1); |
| |
| /* Put the word HOUSE into lower case. */ |
| txt = regreplace(txt, "HOUSE", |
| function string (string s) {return lower_case(s);}, |
| 1); |
| |
| |
| HISTORY |
| Introduced in 3.2.1@125. |
| The use of a closure as replacepattern was introduced in |
| LDMud 3.2.9. |
| |
| AUTHOR |
| Marcus@TAPPMud contributed the original idea for the efun and the |
| man page. |
| |
| SEE ALSO |
| regexp(E), regexplode(E), regmatch(E), regexp_package(E), |
| sscanf(E), trim(E), regexp(C) |