| glob2rx {utils} | R Documentation |
Change wildcard aka globbing (or “ls” like)
pattern into the corresponding regular expression (regexp).
glob2rx(pattern, trim.head = FALSE, trim.tail = TRUE)
pattern |
character vector |
trim.head |
logical specifying if leading "^.*" should be
trimmed from the result. |
trim.tail |
logical specifying if trailing ".*$" should be
trimmed from the result. |
This takes a wildcard as used by most shells and returns an equivalent
regular expression. ? is mapped to . (match a single
character), * to .* (match any string, including an
empty one), and the pattern is anchored (it must start at the
beginning and end at the end). Optionally, the resulting regexp is
simplified.
A character vector of the same length as the input pattern
where each “wild card” is translated to the corresponding
regular expression.
Martin Maechler, Unix/sed based version, 1991; current: 2004
regexp about regular expression,
sub, etc about substitutions using regexps.
stopifnot(glob2rx("abc.*") == "^abc\\.",
glob2rx("a?b.*") == "^a.b\\.",
glob2rx("a?b.*", trim.tail=FALSE) == "^a.b\\..*$",
glob2rx("*.doc") == "^.*\\.doc$",
glob2rx("*.doc", trim.head=TRUE) == "\\.doc$",
glob2rx("*.t*") == "^.*\\.t",
glob2rx("*.t??") == "^.*\\.t..$"
)