Does a string match a regular expression?
Usage
expect_match(
object,
regexp,
perl = FALSE,
fixed = FALSE,
...,
all = TRUE,
info = NULL,
label = NULL
)
expect_no_match(
object,
regexp,
perl = FALSE,
fixed = FALSE,
...,
all = TRUE,
info = NULL,
label = NULL
)
Arguments
- object
Object to test.
Supports limited unquoting to make it easier to generate readable failures within a function or for loop. See quasi_label for more details.
- regexp
Regular expression to test against.
- perl
logical. Should Perl-compatible regexps be used?
- fixed
If
TRUE
, treatsregexp
as a string to be matched exactly (not a regular expressions). Overridesperl
.- ...
Arguments passed on to
base::grepl
ignore.case
if
FALSE
, the pattern matching is case sensitive and ifTRUE
, case is ignored during matching.useBytes
logical. If
TRUE
the matching is done byte-by-byte rather than character-by-character. See ‘Details’.
- all
Should all elements of actual value match
regexp
(TRUE), or does only one need to match (FALSE).- info
Extra information to be included in the message. This argument is soft-deprecated and should not be used in new code. Instead see alternatives in quasi_label.
- label
Used to customise failure messages. For expert use only.
Details
expect_match()
is a wrapper around grepl()
. See its documentation for
more detail about the individual arguments. expect_no_match()
provides
the complementary case, checking that a string does not match a regular
expression.
See also
Other expectations:
comparison-expectations
,
equality-expectations
,
expect_error()
,
expect_length()
,
expect_named()
,
expect_null()
,
expect_output()
,
expect_reference()
,
expect_silent()
,
inheritance-expectations
,
logical-expectations
Examples
expect_match("Testing is fun", "fun")
expect_match("Testing is fun", "f.n")
expect_no_match("Testing is fun", "horrible")
if (FALSE) {
expect_match("Testing is fun", "horrible")
# Zero-length inputs always fail
expect_match(character(), ".")
}