| nchar_ctl {fansi} | R Documentation |
nchar_ctl counts all non Control Sequence characters.
nzchar_ctl returns TRUE for each input vector element that has non Control
Sequence sequence characters. By default newlines and other C0 control
characters are not counted.
nchar_ctl(x, type = "chars", allowNA = FALSE, keepNA = NA,
strip = "all", warn = getOption("fansi.warn"))
nzchar_ctl(x, keepNA = NA, warn = getOption("fansi.warn"))
x |
a character vector or object that can be coerced to character. |
type |
character string, one of "chars", or "width". For byte counts use base::nchar. |
allowNA |
logical: should |
keepNA |
logical: should |
strip |
character, any combination of the following values (see details):
|
warn |
TRUE (default) or FALSE, whether to warn when potentially
problematic Control Sequences are encountered. These could cause the
assumptions |
nchar_ctl is just a wrapper around nchar(strip_ctl(...)). nzchar_ctl
is implemented in native code and is much faster than the otherwise
equivalent nzchar(strip_ctl(...)). You cannot change which Control
Sequences count in nzchar_ctl, but you can always resort to
nzchar(strip_ctl(..., strip='...')) if that is important.
These functions will warn if either malformed or non-CSI escape sequences are encountered, as these may be incorrectly interpreted.
the keepNA parameter is ignored for R < 3.2.2.
fansi for details on how Control Sequences are interpreted, particularly if you are getting unexpected results, strip_ctl for removing Control Sequences.
nchar_ctl("\033[31m123\a\r")
## with some wide characters
cn.string <- sprintf("\033[31m%s\a\r", "\u4E00\u4E01\u4E03")
nchar_ctl(cn.string)
nchar_ctl(cn.string, type='width')
## Remember newlines are not counted by default
nchar_ctl("\t\n\r")
## The 'c0' value for the `strip` argument does
## not include newlines.
nchar_ctl("\t\n\r", strip="c0")
nchar_ctl("\t\n\r", strip=c("c0", "nl"))
## All of the following are Control Sequences
nzchar_ctl("\n\033[42;31m\033[123P\a")