glob2rx
Change Wildcard or Globbing Pattern into Regular Expression
Change wildcard aka globbing patterns into the
corresponding regular expressions (regexp
).
Usage
glob2rx(pattern, trim.head = FALSE, trim.tail = TRUE)
Arguments
 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.
Details
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.
Note that now even (
, [
and {
can be used
in pattern
, but glob2rx()
may not work correctly with
arbitrary characters in pattern
.
Value

A character vector of the same length as the input
pattern
where each wildcard is translated to the corresponding
regular expression.
See Also
regexp
about regular expression,
sub
, etc about substitutions using regexps.
Examples
library(utils)
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..$",
glob2rx("*[*") == "^.*\\["
)
Community examples
Looks like there are no examples yet.