str_start()
finds the beginning position of pattern
in each element of x
, while str_end()
finds the stopping position
of pattern
in each element of x
.
str_start(x, pattern, ignore.case = TRUE, regex = FALSE)
str_end(x, pattern, ignore.case = TRUE, regex = FALSE)
A character vector.
Character string to be matched in x
. pattern
might also
be a regular-expression object, as returned by stringr::regex()
.
Alternatively, use regex = TRUE
to treat pattern
as a regular
expression rather than a fixed string.
Logical, whether matching should be case sensitive or not.
ignore.case
is ignored when pattern
is no regular expression or
regex = FALSE
.
Logical, if TRUE
, pattern
is treated as a regular
expression rather than a fixed string.
A numeric vector with index of start/end position(s) of pattern
found in x
, or -1
, if pattern
was not found
in x
.
path <- "this/is/my/fileofinterest.csv"
str_start(path, "/")
#> [1] 5 8 11
path <- "this//is//my//fileofinterest.csv"
str_start(path, "//")
#> [1] 5 9 13
str_end(path, "//")
#> [1] 6 10 14
x <- c("my_friend_likes me", "your_friend likes_you")
str_start(x, "_")
#> [[1]]
#> [1] 3 10
#>
#> [[2]]
#> [1] 5 18
#>
# pattern "likes" starts at position 11 in first, and
# position 13 in second string
str_start(x, "likes")
#> [[1]]
#> [1] 11
#>
#> [[2]]
#> [1] 13
#>
# pattern "likes" ends at position 15 in first, and
# position 17 in second string
str_end(x, "likes")
#> [[1]]
#> [1] 15
#>
#> [[2]]
#> [1] 17
#>
x <- c("I like to move it, move it", "You like to move it")
str_start(x, "move")
#> [[1]]
#> [1] 11 20
#>
#> [[2]]
#> [1] 13
#>
str_end(x, "move")
#> [[1]]
#> [1] 14 23
#>
#> [[2]]
#> [1] 16
#>
x <- c("test1234testagain")
str_start(x, "\\d+4")
#> [1] -1
str_start(x, "\\d+4", regex = TRUE)
#> [1] 5
str_end(x, "\\d+4", regex = TRUE)
#> [1] 8