This is the color-aware counterpart of base::substring()
.
It works exactly like the original, but keeps the colors in the
substrings. The ANSI escape sequences are ignored when
calculating the positions within the string.
Value
Character vector of the same length as x
, containing
the requested substrings. ANSI styles are retained.
See also
Other ANSI string operations:
ansi_align()
,
ansi_columns()
,
ansi_nchar()
,
ansi_strsplit()
,
ansi_strtrim()
,
ansi_strwrap()
,
ansi_substr()
,
ansi_toupper()
,
ansi_trimws()
Examples
str <- paste(
col_red("red"),
"default",
col_green("green")
)
cat(str, "\n")
#> red default green
cat(ansi_substring(str, 1, 5), "\n")
#> red d
cat(ansi_substring(str, 1, 15), "\n")
#> red default gre
cat(ansi_substring(str, 3, 7), "\n")
#> d def
substring(ansi_strip(str), 1, 5)
#> [1] "red d"
substring(ansi_strip(str), 1, 15)
#> [1] "red default gre"
substring(ansi_strip(str), 3, 7)
#> [1] "d def"
str2 <- paste(
"another",
col_red("multi-", style_underline("style")),
"text"
)
cat(str2, "\n")
#> another multi-style text
cat(ansi_substring(str2, c(3,5), c(7, 18)), sep = "\n")
#> other
#> her multi-styl
substring(ansi_strip(str2), c(3,5), c(7, 18))
#> [1] "other" "her multi-styl"