R: Change Wildcard or Globbing Pattern into Regular Expression

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

[Package utils version 2.6.2 Index]