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
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]