# Examples

The goal of this vignette is to provide some basic examples that solve common regular expression tasks. The `print` and `grepl` calls are attached at the end of each chain to show the regular expression that is constructed and what it matches.

## Contains two words

    # find something that must contain two words
    rx() %>%
      rx_find("cat") %>%
      rx_anything() %>%
      rx_find("dog") %>%
      print() %>%
      grepl(c("cat dog", "cat", "dog"))
    #> [1] "(cat)(.*)(dog)"
    #> [1]  TRUE FALSE FALSE

## Between two words

    # find something between two words
    rx() %>%
      rx_seek_prefix("cat") %>%
      rx_something() %>%
      rx_seek_suffix("dog") %>%
      print() %>%
      grepl(c("cat something dog", "catdog"), perl = TRUE)
    #> [1] "(?<=cat)(.+)(?=dog)"
    #> [1]  TRUE FALSE

## Starts with word

    # find something that starts with word
    rx() %>%
      rx_start_of_line() %>%
      rx_find("cat") %>%
      print() %>%
      grepl(c("cat", "cat dog", "dog cat"))
    #> [1] "^(cat)"
    #> [1]  TRUE  TRUE FALSE

## Ends with word

    # find something that ends with word
    rx() %>%
      rx_find("cat") %>%
      rx_end_of_line() %>%
      print() %>%
      grepl(c("cat", "cat dog", "dog cat"))
    #> [1] "(cat)$"
    #> [1]  TRUE FALSE  TRUE

## Starts and end with words

    # find something that starts with and ends with words
    rx() %>%
      rx_start_of_line() %>%
      rx_find("cat") %>%
      rx_anything() %>%
      rx_find("dog") %>%
      rx_end_of_line() %>%
      print() %>%
      grepl(c("cat", "cat dog", "dog cat"))
    #> [1] "^(cat)(.*)(dog)$"
    #> [1] FALSE  TRUE FALSE

## Case insensitive

    # find something regardless of case
    rx() %>%
      rx_find("cat") %>%
      rx_with_any_case() %>%
      print() %>%
      grepl(c("cat", "CAT"))
    #> [1] "(?i)(cat)"
    #> [1] TRUE TRUE