Strsplit()由分隔符的第二次出现

aga*_*tha 1 regex r

我试图通过字符串中第二次出现的字符进行拆分(在第二次出现字符之前返回字符串中的子字符串x)

对于字符串:

s <-"a_b_c",如果是分隔符"_",我需要子字符串:"a_b"

我的函数在第一次出现时返回子字符串:

 return_topic<-function(s)
 {
   if (length(grep("_",s))>0)
     { return (unlist(strsplit(s,"_"))[1])}
    else return  (" ")

  }


> return_topic("a_b_c")
[1] "a"
Run Code Online (Sandbox Code Playgroud)

Sve*_*ein 5

你可以使用sub:

sub("(.*?_.*?)_.*", "\\1", s)
# [1] "a_b"
Run Code Online (Sandbox Code Playgroud)