## Pattern Matching and Replacement

## Usage

    grep(pattern, x, ignore.case=FALSE, extended=TRUE, value=FALSE)
    sub(pattern, replacement, x,
            ignore.case=FALSE, extended=TRUE)
    gsub(pattern, replacement, x,
            ignore.case=FALSE, extended=TRUE)

## Arguments

`pattern` | character string containing a regular expression to be matched in the vector of character string `vec`.
`x` | a vector of character strings where matches are sought.
`ignore.case` | if `FALSE`, the pattern matching is case sensitive and if `TRUE`, case is ignored during matching.
`extended` | if `TRUE`, extended regular expression matching is used, and if `FALSE` basic regular expressions are used.
`value` | if `FALSE`, a vector containing the (`integer`) indices of the matches determined by `grep` is returned, and if `TRUE`, a vector containing the matching elements themselves is returned.
`replacement` | a replacement for matched pattern in `sub` and `gsub`.

## Description

`grep` searches for matches to `pattern` (its first argument) within the vector `x` of character strings (second argument).

`sub` and `gsub` perform replacement of matches determined by regular expression matching. The two functions differ only in that `sub` replaces only the first occurence of a `pattern` whereas `gsub` replaces all occurences.

The regular expressions used are those specified by POSIX 1003.2, either extended or basic, depending on the value of the `extended` argument.

## Note

This function is based on the regex regular expression library written by Henry Spencer of the University of Toronto.

## See Also

`match`, `pmatch`.

## Examples

    grep("[a-z]", letters)

    txt <- c("The", "licenses", "for", "most", "software", "are",
      "designed", "to", "take", "away", "your", "freedom",
      "to", "share", "and", "change", "it.",
       "", "By", "contrast,", "the", "GNU", "General", "Public", "License",
       "is", "intended", "to", "guarantee", "your", "freedom", "to",
       "share", "and", "change", "free", "software", "--",
       "to", "make", "sure", "the", "software", "is",
       "free", "for", "all", "its", "users")
    ( i <- grep("[gu]", txt) ) # indices
    all( txt[i] == grep("[gu]", txt, value = TRUE) )
    (ot <- sub("[b-e]",".", txt))
    txt[ot != gsub("[b-e]",".", txt)]#- gsub does "global" substitution

    txt[gsub("g","#", txt) !=
        gsub("g","#", txt, ignore.case = TRUE)] # the "G" words

[Package Contents]