Do you expect a string to match this pattern?
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
logical. 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()
checks if a character vector matches a regular expression,
powered by grepl()
.
expect_no_match()
provides the complementary case, checking that a
character vector 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")
show_failure(expect_match("Testing is fun", "horrible"))
#> Failed expectation:
#> "Testing is fun" does not match regexp "horrible".
#> Text:
#> ✖ │ Testing is fun
show_failure(expect_match("Testing is fun", "horrible", fixed = TRUE))
#> Failed expectation:
#> "Testing is fun" does not match string "horrible".
#> Text:
#> ✖ │ Testing is fun
# Zero-length inputs always fail
show_failure(expect_match(character(), "."))
#> Failed expectation:
#> character() is empty.