Match and replace elements of patterns in an expression or a list of expressions.
Usage
expr_replace(expr, ..., patterns, replacements,
n = Inf, env = parent.frame())Arguments
- expr
Input. An expression, expr_list, or
list()of expressions.- ...
Alternating series of patterns and replacements, each a single expression (though alternatives can be specified with
?).- patterns
Patterns to look for. An expression, expr_list, or
list()of expressions.- replacements
Replacements, one for each pattern.
- n
Maximum number of times for each expression to make each replacement; default is
Inf.- env
Environment for injections in
expr,pattern(see expression).
Details
Patterns follow the syntax for expr_match().
See also
expr_match() to find patterns in expressions, and its cousins
expr_count(), expr_detect(), expr_extract(), and expr_locate().
Examples
# Example with alternating patterns and replacements
expr_replace({ 1 + 2 }, {1}, {one}, {2}, {two})
#> one + two
# Example with patterns and replacements in a list
expr_replace({ 1 + 2 }, patterns = expr_list({1}, {2}),
replacements = expr_list({one}, {two}))
#> one + two
# Replace with captures
expr_replace({ 1 + 2 }, ~{ .A + .B }, { .A - .B })
#> 1 - 2