Vectorised over `string`

and `pattern`

.

str_split(string, pattern, n = Inf, simplify = FALSE)
str_split_fixed(string, pattern, n)

## Arguments

- string
Input vector. Either a character vector, or something
coercible to one.

- pattern
Pattern to look for.

The default interpretation is a regular expression, as described
in stringi-search-regex. Control options with
`regex()`

.

Match a fixed string (i.e. by comparing only bytes), using
`fixed(x)`

. This is fast, but approximate. Generally,
for matching human text, you'll want `coll(x)`

which
respects character matching rules for the specified locale.

Match character, word, line and sentence boundaries with
`boundary()`

. An empty pattern, "", is equivalent to
`boundary("character")`

.

- n
number of pieces to return. Default (Inf) uses all
possible split positions.

For `str_split_fixed`

, if n is greater than the number of pieces,
the result will be padded with empty strings.

- simplify
If `FALSE`

, the default, returns a list of character
vectors. If `TRUE`

returns a character matrix.

## Value

For `str_split_fixed`

, a character matrix with `n`

columns.
For `str_split`

, a list of character vectors.

## See also

`stri_split`

for the underlying implementation.

## Examples

fruits <- c(
"apples and oranges and pears and bananas",
"pineapples and mangos and guavas"
)
str_split(fruits, " and ")

#> [[1]]
#> [1] "apples" "oranges" "pears" "bananas"
#>
#> [[2]]
#> [1] "pineapples" "mangos" "guavas"
#>

str_split(fruits, " and ", simplify = TRUE)

#> [,1] [,2] [,3] [,4]
#> [1,] "apples" "oranges" "pears" "bananas"
#> [2,] "pineapples" "mangos" "guavas" ""

# Specify n to restrict the number of possible matches
str_split(fruits, " and ", n = 3)

#> [[1]]
#> [1] "apples" "oranges" "pears and bananas"
#>
#> [[2]]
#> [1] "pineapples" "mangos" "guavas"
#>

str_split(fruits, " and ", n = 2)

#> [[1]]
#> [1] "apples" "oranges and pears and bananas"
#>
#> [[2]]
#> [1] "pineapples" "mangos and guavas"
#>

# If n greater than number of pieces, no padding occurs
str_split(fruits, " and ", n = 5)

#> [[1]]
#> [1] "apples" "oranges" "pears" "bananas"
#>
#> [[2]]
#> [1] "pineapples" "mangos" "guavas"
#>

# Use fixed to return a character matrix
str_split_fixed(fruits, " and ", 3)

#> [,1] [,2] [,3]
#> [1,] "apples" "oranges" "pears and bananas"
#> [2,] "pineapples" "mangos" "guavas"

str_split_fixed(fruits, " and ", 4)

#> [,1] [,2] [,3] [,4]
#> [1,] "apples" "oranges" "pears" "bananas"
#> [2,] "pineapples" "mangos" "guavas" ""