ansi_strsplit {cli}R Documentation

Split an ANSI colored string


This is the color-aware counterpart of base::strsplit(). It works almost exactly like the original, but keeps the colors in the substrings.


ansi_strsplit(x, split, ...)



Character vector, potentially ANSI styled, or a vector to coarced to character.


Character vector of length 1 (or object which can be coerced to such) containing regular expression(s) (unless fixed = TRUE) to use for splitting. If empty matches occur, in particular if split has zero characters, x is split into single characters.


Extra arguments are passed to base::strsplit().


A list of the same length as x, the i-th element of which contains the vector of splits of x[i]. ANSI styles are retained.

See Also

Other ANSI string operations: ansi_align(), ansi_columns(), ansi_nchar(), ansi_strtrim(), ansi_strwrap(), ansi_substring(), ansi_substr(), ansi_toupper(), ansi_trimws()


str <- paste0(
  col_red("I am red---"),
  col_green("and I am green-"),
  style_underline("I underlined")

cat(str, "\n")

# split at dashes, keep color
cat(ansi_strsplit(str, "[-]+")[[1]], sep = "\n")
strsplit(ansi_strip(str), "[-]+")

# split to characters, keep color
cat(ansi_strsplit(str, "")[[1]], "\n", sep = " ")
strsplit(ansi_strip(str), "")

[Package cli version 3.0.1 Index]