MOO-cows Mailing List Archive

[Prev][Next][Index][Thread]

Re: regex substitution




I see what you want.  I wrote a #19845:grep_and_replace @LambdaMOO to handle
regular expression replacement in an object or group of objects.  It didn't,
however, handle individual strings.  Here's one that does:

@verb me:replace_regex tnt "Rxd" ME
@prog me:replace_regex
":replace_regex(string, expression, replacement)";
s = args[1];
e = args[2];
r = args[3];
"{s, e, r} = args;  // I haven't even used 1.8 yet.  MMM CANNA WAIT.";
MAXIT = 50;
while ((MAXIT = MAXIT - 1) && (m = match(s, e)))
  s[m[3][1][1]..m[3][1][2]] = r;
endwhile
return s;
.

;player:replace_regex("Can you be zzzomewhat rezzzpectful?", "%(zz+%)", "s")
=> "Can you be somewhat respectful?"
[used 47 ticks, 1 second.]

I haven't performed any thorough tests, but this at least handles global
replacement.  You could modify it to accept replacement lists to allow for
replacing more than one expression in a run, but it'd really tangle the code.

-Quinn
-http://www.vv.com/~quinn/   (corp)
-http://www.bga.com/~quinn/  (self)




Home | Subject Index | Thread Index