patternFilter {operators}R Documentation

Regular expression filters

Description

Filters a character vector by a regular expression.

Usage

  x %~|% rx
  x %!~|% rx
  

Arguments

x

text to manipulate

rx

regular expression

Value

'%~|%' : a character vector containing all the elements of x that match the regular expression rx or NULL if there is no match.

'%!~|%' : a character vector containing all the elements of x that do not match the regular expression rx.

Note

The filtering is done using the regexpr function. Logical arguments of regexpr can be indirectly used by %~|% or %!~|% by using the operators.regexpr option declared with this package. See %but% for a description of this mecanism.

Author(s)

Romain Francois <francoisromain@free.fr>

See Also

grep, gsub

Examples

                        
  
  cols <- colors()
  cols %~|% "^blue"
  
  ### blue colors that don't finish with a digit
  ( a1 <- cols %~|% "blue" %!~|% "\\d$"         )
  ( a2 <- cols %~|% "blue[^0-9]*$"                )
  ( a3 <- grep( "blue[^0-9]*", cols, value = TRUE ) )
  
  # using perl regular expressions
  
  ### not necessary since p is in the default of the package
  with( options( operators.regexpr = "p" ), { 
  	( a4 <- grep( "blue[^\\d]*", cols, value = TRUE, perl = TRUE  ) )
  	( a5 <- cols %~|% "blue[^\\d]*$" )
  })
  
  ### blue colors that contain a r
  cols %~|% "blue" %~|% "r"
  grep( "r", grep( "blue", cols, value = TRUE ), value = TRUE  )
  
  ### blue colors that don't contain a r
  cols %~|% "blue" %!~|% "r"
  cols %~|% "^[^r]*blue[^r]*$"
  
  grep( "^[^r]*$", grep( "blue", cols, value = TRUE ), value = TRUE  ) # tricky and verbose
  # or in two steps, ... laborious
  bluecols <- grep( "blue", cols, value = TRUE )
  bluecols[ -grep( "r", bluecols) ]
  

[Package operators version 0.1-8 Index]