Before and After

  collapse = TRUE,
  comment = "#>"

Often, we want the part of a string that comes before or after a given pattern.



str_before_nth() gives you the part of a string before the n^th^ appearance of a pattern. It has the friends str_before_first() and str_before_last().

string <- ""
str_before_first(string, "e")
str_before_nth(string, "\\.", 3)
str_before_last(string, "\\.")
str_before_nth(string, ".", -3)
str_before_nth(rep(string, 2), fixed("."), -3)


str_after_nth() gives you the part of a string after the n^th^ appearance of a pattern. It has the friends str_after_first() and str_after_last().

string <- ""
str_after_first(string, "e")
str_after_nth(string, "\\.", 3)
str_after_last(string, "\\.")
str_after_nth(string, ".", -3)
str_after_nth(rep(string, 2), fixed("."), -3)

A more concrete example

string <- "James did the cooking, Harry did the cleaning."

Let's write a function to figure out which task each of the lads did.

get_task <- function(string, name) {
  str_c(name, " did the ") %>% 
    str_after_first(string, .) %>% 
get_task(string, "James")
get_task(string, "Harry")

get_task() would have been more difficult to write without str_after_first() and str_before_first().

Try the strex package in your browser

Any scripts or data that you put into this service are public.

strex documentation built on April 18, 2021, 9:06 a.m.