| glob2rx {utils} | R Documentation |
Change Wildcard or Globbing Pattern into Regular Expression
Description
Change wildcard aka globbing (or “ls” like)
pattern into the corresponding regular expression (regexp).
Usage
glob2rx(pattern, trim.head = FALSE, trim.tail = TRUE)
Arguments
pattern |
character vector |
trim.head |
logical specifying if leading |
trim.tail |
logical specifying if trailing |
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.
Value
A character vector of the same length as the input pattern
where each “wild card” is translated to the corresponding
regular expression.
Author(s)
Martin Maechler, Unix/sed based version, 1991; current: 2004
See Also
regexp about regular expression,
sub, etc about substitutions using regexps.
Examples
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..$"
)