glob2rx

0th

Percentile

Change Wildcard or Globbing Pattern into Regular Expression

Change wildcard aka globbing patterns into the corresponding regular expressions (regexp).

Keywords
utilities, file, character
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.

Aliases
  • glob2rx
Examples
library(utils) # NOT RUN { stopifnot(glob2rx("abc.*") == "^abc\\.", # } # NOT RUN { <!-- % '\\' doubled in Rd file! --> # } # NOT RUN { 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("*[*") == "^.*\\[" ) # }
Documentation reproduced from package utils, version 3.6.0, License: Part of R 3.6.0

Community examples

Looks like there are no examples yet.