add method to replace that takes a function RegexMatch -> String #41051
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds the possibility to perform regex string replacements with an arbitrary function of the matching string and the capture groups as proposed in #36293:
I chose the name
RegexReplacer
for consistency with the related typesRegex
andRegexMatch
and because I find it easy to remember thatreplace
takes a "replacer". See also Rust's trait regex::Replacer. But this is of course up for debate and other names have been proposed.I proposed a different API in #24598 which would solve both issues at the same time:
But this hasn't gotten any feedback yet. I tried to give some pros and cons for both variants in #36293 and I'm happy with either/both solutions. Update: in light of #40484, I don't think the
do
-block variant makes sense anymore as an alternative.TODO:
Fixes #36293