R: Extract text before or after 'n'th occurrence of pattern.

before-and-after {strex} | R Documentation

## Extract text before or after `n`th occurrence of pattern.

### Description

Extract the part of a string which is before or after the `n`th occurrence of a specified pattern, vectorized over the string.

### Usage

    str_after_nth(string, pattern, n)

    str_after_first(string, pattern)

    str_after_last(string, pattern)

    str_before_nth(string, pattern, n)

    str_before_first(string, pattern)

    str_before_last(string, pattern)

### Arguments

`string` | A character vector.
`pattern` | The pattern to look for. The default interpretation is a regular expression, as described in stringi::about_search_regex. To match a without regular expression (i.e. as a human would), use coll(). For details see `stringr::regex()`.
`n` | A vector of integerish values. Must be either length 1 or have length equal to the length of `string`. Negative indices count from the back: while `n = 1` and `n = 2` correspond to first and second, `n = -1` and `n = -2` correspond to last and second-last. `n = 0` will return `NA`.

### Details

- `str_after_first(...)` is just `str_after_nth(..., n = 1)`.

- `str_after_last(...)` is just `str_after_nth(..., n = -1)`.

- `str_before_first(...)` is just `str_before_nth(..., n = 1)`.

- `str_before_last(...)` is just `str_before_nth(..., n = -1)`.

### Value

A character vector.

### See Also

Other bisectors: `str_before_last_dot()`

### Examples

    string <- "abxxcdxxdexxfgxxh"
    str_after_nth(string, "xx", 3)
    str_before_nth(string, "e", 1:2)
    str_before_nth(string, "xx", -3)
    str_before_nth(string, ".", -3)
    str_before_nth(rep(string, 2), "..x", -3)
    str_before_first(string, "d")
    str_before_last(string, "x")
    string <- c("abc", "xyz.zyx")
    str_after_first(string, ".") # using regex
    str_after_first(string, coll(".")) # using human matching
    str_after_last(c("xy", "xz"), "x")

[Package strex version 1.4.0 Index]