View source code
Display the source code in std/regex.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
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.

std.regex.replaceAll - 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 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

// insert comma as thousands delimiter
auto re = regex(r"(?<=\d)(?=(\d\d\d)+\b)","g");
writeln(replaceAll("12000 + 42100 = 54100", re, ",")); // "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

string baz(Captures!(string) m)
{
    import std.string : toUpper;
    return toUpper(m.hit);
}
// Capitalize the letters 'a' and 'r':
auto s = replaceAll!(baz)("Strap a rocket engine on a chicken.",
        regex("[ar]"));
writeln(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