Вероятно, вы можете попробовать:
stringr::str_extract(df$Data, "Posted by .+?(?=\\s+on)")
#[1] "Posted by Mohit Garg" "Posted by Dr. Lokesh Garg" "Posted by Lokesh.G.S"
#[4] "Posted by Mohit.G.S." "Posted by Dr.Mohit G Kumar Saha"
Это извлекает все от "Posted by"
до "on"
за исключением "on"
.
То же самое в базе R:
sub(".*(Posted by .+?)(?=\\s+on).*", '\\1', df$Data, perl = TRUE)
данные
df <- structure(list(Data = c("Posted by Mohit Garg on May 7, 2016",
"Posted by Dr. Lokesh Garg on April 8, 2018", "Posted by Lokesh.G.S on June 11, 2001",
"Posted by Mohit.G.S. on July 23, 2005", "Posted by Dr.Mohit G Kumar Saha on August 2, 2019"
)), class = "data.frame", row.names = c(NA, -5L))