stri_sub {stringi} | R Documentation |
The first function extracts substrings under code point-based index ranges provided. The second one allows to substitute parts of a string with given strings.
stri_sub(str, from = 1L, to = -1L, length) stri_sub(str, from = 1L, to = -1L, length, omit_na=FALSE) <- value
str |
character vector |
from |
integer vector or two-column matrix |
to |
integer vector; mutually exclusive with |
length |
integer vector; mutually exclusive with |
omit_na |
single logical value; if |
value |
character vector to be substituted with; replacement function only |
Vectorized over str
, [value
], from
and
(to
or length
).
to
and length
are mutually exclusive.
to
has priority over length
.
If from
is a two-column matrix, then the first column is used
as from
and the second one as to
. In such case arguments
to
and length
are ignored.
Of course, the indices are code point-based, and not byte-based.
Note that for some Unicode strings, the extracted substrings may not
be well-formed, especially if the input is not NFC-normalized
(see stri_trans_nfc
),
includes byte order marks, Bidirectional text marks, and so on.
Handle with care.
Indices are 1-based, i.e., an index equal to 1 denotes the first character
in a string, which gives a typical R look-and-feel.
Argument to
defines the last index of the substring, inclusive.
For negative indices in from
or to
,
counting starts at the end of the string.
For instance, index -1 denotes the last code point in the string.
Non-positive length
gives an empty string.
In stri_sub
, out-of-bound indices are silently
corrected. If from
> to
, then an empty string is returned.
In stri_sub<-
, some configurations of indices may work as
string concatenation at the front, back, or middle.
stri_sub
returns a character vector.
stri_sub<-
changes the str
object.
The extract function stri_sub
returns the indicated substrings.
The replacement function stri_sub<-
is invoked for its
side effect: after a call, str
is modified.
Other indexing: stri_locate_all_boundaries
,
stri_locate_all
s <- "Lorem ipsum dolor sit amet, consectetur adipisicing elit." stri_sub(s, from=1:3*6, to=21) stri_sub(s, from=c(1,7,13), length=5) stri_sub(s, from=1, length=1:3) stri_sub(s, -17, -7) stri_sub(s, -5, length=4) (stri_sub(s, 1, 5) <- "stringi") (stri_sub(s, -6, length=5) <- ".") (stri_sub(s, 1, 1:3) <- 1:2) x <- c("a;b", "c:d") (stri_sub(x, stri_locate_first_fixed(x, ";"), omit_na=TRUE) <- "_")