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..$" )