word:12335
anotherword:2323434
totallydifferentword/455
word/32
I need to grab the character string before the :
or /
usi
Maybe try:
x <- c("word:12335", "anotherword:2323434", "totallydifferentword/455", "word/32")
lapply(strsplit(x, ":|/"), function(z) z[[1]]) #as a list
sapply(strsplit(x, ":|/"), function(z) z[[1]]) #as a string
There are regex solutions with gsub
that will work too but in my experiences with similar problems strsplit
will be less eloquent but faster.
I supose this regex would work as well:
gsub("([a-z]+)([/|:])([0-9]+)", "\\1", x)
In this case gsub was faster:
Unit: microseconds
expr min lq median uq max
1 GSUB() 19.127 21.460 22.392 23.792 106.362
2 STRSPLIT() 46.650 50.849 53.182 54.581 854.162