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)
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 .
|
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.
On the Macintosh port this function is based on the regex regular expression library written by Henry Spencer of the University of Toronto.
charmatch
, pmatch
, match
.
apropos
uses regexps and has nice examples.grep("[a-z]", letters) ## Double all 'a' or 'b's; "\" must be escaped, i.e. `doubled' gsub("([ab])", "\\1_\\1_", "abc and ABC") 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