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" ""