如何使用两个分隔符保留 word/string 的唯一部分?

How keep the only portions of the word/string withing two delimiter?

//@john:awesome play @user2:great....//@user3:wow%oke"kakaa"
@user5:aha@user3:hello
@user6:helloow @user7:database @user1:ok

我想要的结果是用户,即“@”和“:”之间的word/string,我尝试拆分

text_1 = strsplit(as.character(df$text), '(?<=[^@])(?=@)', perl=TRUE)

但结果不是我想要的 我希望结果像下面这样

john user2 user3
user5 user3
user6 user7 user1

如果 string 是你的字符串,你可以试试:

  regmatches(gregexpr("(?<=@)[^:]+",string,perl=TRUE),x=string)[[1]]
  #[1] "john"  "user2" "user3" "user5" "user3" "user6" "user7" "user1"