R: Global substitute of expression using regular expressions

egsub {R.utils} | R Documentation

## Global substitute of expression using regular expressions

### Description

Global substitute of expression using regular expressions.

### Usage

    egsub(pattern, replacement, x, ..., value=TRUE, envir=parent.frame(), inherits=TRUE)

### Arguments

`pattern` | A `character` string with the regular expression to be matched, cf. `gsub`().
`replacement` | A `character` string of the replacement to use when there is a match, cf. `gsub`().
`x` | The `expression` or a `function` to be modified.
`...` | Additional arguments passed to `gsub`()
`value` | If `TRUE`, the value of the replacement itself is used to look up a variable with that name and then using that variables value as the replacement. Otherwise the replacement value is used.
`envir, inherits` | An `environment` from where to find the variable and whether the search should also include enclosing frames, cf. `get`(). Only use if `value` is `TRUE`.

### Value

Returns an `expression`.

### Author(s)

Henrik Bengtsson

### Examples

    # Original expression
    expr <- substitute({
      res <- foo.bar.yaa(2)
      print(res)
      R.utils::use("R.oo")
      x <- .b.
    })

    # Some predefined objects
    foo.bar.yaa <- function(x) str(x)
    a <- 2
    b <- a

    # Substitute with variable name
    expr2 <- egsub("^[.]([a-zA-Z0-9_.]+)[.]$", "\\1", expr, value=FALSE)
    print(expr2)
    ## {
    ##     res <- foo.bar.yaa(2)
    ##     print(res)
    ##     R.utils::use("R.oo")
    ##     x <- b
    ## }

    # Substitute with variable value
    expr3 <- egsub("^[.]([a-zA-Z0-9_.]+)[.]$", "\\1", expr, value=TRUE)
    print(expr3)
    ## {
    ##     res <- foo.bar.yaa(2)
    ##     print(res)
    ##     R.utils::use("R.oo")
    ##     x <- 2
    ## }
    # Substitute the body of a function
    warnifnot <- egsub("stop", "warning", stopifnot, value=FALSE)
    print(warnifnot)
    warnifnot(pi == 3.14)

[Package R.utils version 2.7.0 Index]