Skip to content

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, treats regexp as a string to be matched exactly (not a regular expressions). Overrides perl.

...

Arguments passed on to base::grepl

ignore.case

if FALSE, the pattern matching is case sensitive and if TRUE, 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.

Functions

  • expect_no_match(): Check that a string doesn't match a regular expression.

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(), ".")
}