R: Control matching behaviour with modifier functions.

modifiers {stringr} | R Documentation

## Control matching behaviour with modifier functions.

### Description

fixed

  Compare literal bytes in the string. This is very fast, but not usually what you want for non-ASCII character sets.

coll

  Compare strings respecting standard collation rules.

regex

  The default. Uses ICU regular expressions.

boundary

  Match boundaries between things.

### Usage

    fixed(pattern, ignore_case = FALSE)

    coll(pattern, ignore_case = FALSE, locale = "en", ...)

    regex(pattern, ignore_case = FALSE, multiline = FALSE, comments = FALSE,
      dotall = FALSE, ...)

    boundary(type = c("character", "line_break", "sentence", "word"),
      skip_word_none = NA, ...)

### Arguments

`pattern` | Pattern to modify behaviour.
`ignore_case` | Should case differences be ignored in the match?
`locale` | Locale to use for comparisons. See `stringi::stri_locale_list()` for all possible options. Defaults to "en" (English) to ensure that the default collation is consistent across platforms.
`...` | Other less frequently used arguments passed on to `stringi::stri_opts_collator()`, `stringi::stri_opts_regex()`, or `stringi::stri_opts_brkiter()`
`multiline` | If `TRUE`, `$` and `^` match the beginning and end of each line. If `FALSE`, the default, only match the start and end of the input.
`comments` | If `TRUE`, white space and comments beginning with `#` are ignored. Escape literal spaces with `\`.
`dotall` | If `TRUE`, `.` will also match line terminators.
`type` | Boundary type to detect. `character` Every character is a boundary. `line_break` Boundaries are places where it is acceptable to have a line break in the current locale. `sentence` The beginnings and ends of sentences are boundaries, using intelligent rules to avoid counting abbreviations (details). `word` The beginnings and ends of words are boundaries.
`skip_word_none` | Ignore "words" that don't contain any characters or numbers - i.e. punctuation. Default `NA` will skip such "words" only when splitting on `word` boundaries.

### See Also

`str_wrap()` for breaking text to form paragraphs

`stringi::stringi-search-boundaries` for more detail on the various boundaries

### Examples

    pattern <- "a.b"
    strings <- c("abb", "a.b")
    str_detect(strings, pattern)
    str_detect(strings, fixed(pattern))
    str_detect(strings, coll(pattern))

    # coll() is useful for locale-aware case-insensitive matching
    i <- c("I", "\u0130", "i")
    i
    str_detect(i, fixed("i", TRUE))
    str_detect(i, coll("i", TRUE))
    str_detect(i, coll("i", TRUE, locale = "tr"))

    # Word boundaries
    words <- c("These are   some words.")
    str_count(words, boundary("word"))
    str_split(words, " ")[[1]]
    str_split(words, boundary("word"))[[1]]

    # Regular expression variations
    str_extract_all("The Cat in the Hat", "[a-z]+")
    str_extract_all("The Cat in the Hat", regex("[a-z]+", TRUE))

    str_extract_all("a\nb\nc", "^.")
    str_extract_all("a\nb\nc", regex("^.", multiline = TRUE))

    str_extract_all("a\nb\nc", "a.")
    str_extract_all("a\nb\nc", regex("a.", dotall = TRUE))

[Package stringr version 1.3.1 Index]