View source code Display the source code in std/regex.d from which this page was generated on github. Improve this page Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone. Page wiki View or edit the community-maintained wiki page associated with this page.

std.regex.replace_all - multiple declarations

Function replaceAll

Construct a new string from input by replacing all of the fragments that match a pattern re with a string generated from the match according to the format specifier.

To replace only the first match use replaceFirst.

Prototype

R replaceAll(R, C, RegEx)(
  R input,
  RegEx re,
  const(C)[] format
) @trusted
if (isSomeString!R && is(C : dchar) && isRegexFor!(RegEx, R));

Parameters

NameDescription
input string to search
re compiled regular expression to use
format format string to generate replacements from, see Replace format string, the format string.

Returns

A string of the same type as input with the all of the matches (if any) replaced. If no match is found returns the input string itself.

Example

// Comify a number
auto com = regex(r"(?<=\d)(?=(\d\d\d)+\b)","g");
assert(replaceAll("12000 + 42100 = 54100", com, ",") == "12,000 + 42,100 = 54,100");

Function replaceAll

This is a general replacement tool that construct a new string by replacing matches of pattern re in the input. Unlike the other overload there is no format string instead captures are passed to to a user-defined functor fun that returns a new string to use as replacement.

This version replaces all of the matches found in input, see replaceFirst to replace the first match only.

Prototype

R replaceAll(alias fun, R, RegEx)(
  R input,
  RegEx re
) @trusted
if (isSomeString!R && isRegexFor!(RegEx, R));

Returns

A new string of the same type as input with all matches replaced by return values of fun. If no matches found returns the input itself.

Parameters

NameDescription
input string to search
re compiled regular expression
fun delegate to use

Example

Capitalize the letters 'a' and 'r':

string baz(Captures!(string) m)
{
    return std.string.toUpper(m.hit);
}
auto s = replaceAll!(baz)("Strap a rocket engine on a chicken.",
        regex("[ar]"));
assert(s == "StRAp A Rocket engine on A chicken.");

Authors

Dmitry Olshansky,

API and utility constructs are modeled after the original std.regex by Walter Bright and Andrei Alexandrescu.

License

Boost License 1.0.

Comments