glob2rx                package:utils                R Documentation

Change Wildcard or Globbing Pattern into Regular Expression

Description:

     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.

Value:

     A character vector of the same length as the input 'pattern' where
     each wildcard 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..$"
     )

