Determines if a string starts or ends with a match to a specified fixed pattern.
startsWith(
x,
pattern = prefix,
...,
ignore_case = ignore.case,
fixed = TRUE,
ignore.case = FALSE,
prefix
)
endsWith(
x,
pattern = suffix,
...,
ignore_case = ignore.case,
fixed = TRUE,
ignore.case = FALSE,
suffix
)
| | |
|----|----|
| x
| character vector whose elements are to be examined |
| pattern
| character vector with patterns to search for |
| ...
| further arguments to stri_startswith
and stri_endswith
, e.g., locale
|
| ignore_case
| single logical value; indicates whether matching should be case-insensitive |
| fixed
| single logical value; TRUE
for fixed pattern matching (see about_search_fixed); NA
for the Unicode collation algorithm (about_search_coll); FALSE
is not supported -- use grepl
instead |
| ignore.case
| alias to the ignore_case
argument [DEPRECATED] |
| prefix
, suffix
| aliases to the pattern
argument [DEPRECATED] |
These functions are fully vectorised with respect to both arguments.
For matching with regular expressions, see grepl
with patterns like "^prefix"
and "suffix$"
.
Each function returns a logical vector, indicating whether a pattern match has been detected or not. They preserve the attributes of the longest inputs (unless they are dropped due to coercion).
Replacements for base startsWith
and endsWith
implemented with stri_startswith
and stri_endswith
.
there are inconsistencies between the argument order and naming in grepl
, strsplit
, and startsWith
(amongst others); e.g., where the needle can precede the haystack, the use of the forward pipe operator, |>
, is less convenient [fixed here]
grepl
also features the ignore.case
argument [added here]
partial recycling without the usual warning [fixed here]
no attributes preserved whatsoever [fixed here]
not suitable for natural language processing [fixed here -- use fixed=NA
]
The official online manual of stringx at https://stringx.gagolewski.com/
Related function(s): grepl
, substr
startsWith("ababa", c("a", "ab", "aba", "baba", NA))
## [1] TRUE TRUE TRUE FALSE NA
outer(
c("aba", "abb", "abc", "baba", "bac"),
c("A", "B", "C"),
endsWith,
ignore_case=TRUE
)
## [,1] [,2] [,3]
## [1,] TRUE FALSE FALSE
## [2,] FALSE TRUE FALSE
## [3,] FALSE FALSE TRUE
## [4,] TRUE FALSE FALSE
## [5,] FALSE FALSE TRUE
x <- c("Mario", "mario", "M\u00E1rio", "M\u00C1RIO", "Mar\u00EDa", "Rosario")
x[startsWith(x, "mario", ignore_case=TRUE)]
## [1] "Mario" "mario"
x[startsWith(x, "mario", fixed=NA, strength=1L)]
## [1] "Mario" "mario" "Mário" "MÁRIO"
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.