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