tob*_*sch 3 r character delimiter strsplit
我想通过向量中定义的多个分隔符来分割字符:
text1 <- "aweoiutw839572/)(&2aslk2468"
text2 <- "147we547iu5erhg24tzu"
dat <- rbind(text1, text2)
vector <- c("we", "iu", "24")
Run Code Online (Sandbox Code Playgroud)
结果应该是:
var1 del1 var2 del2 var3 del3 var4
a we o iu tw839572/)(&2aslk 24 68
147 we 547 iu 5erhg 24 tzu
Run Code Online (Sandbox Code Playgroud)
有strsplit
什么想法吗?
我们可以使用strsplit
以下模式在这里使用lookarounds:
(?<=we|is|24)|(?<=.)(?=we|iu|24)
Run Code Online (Sandbox Code Playgroud)
上述正则表达式的基本思想是,无论何时,在当前位置,we|is|24
先于或继续,都应该发生分裂.值得注意的是(?<=.)
外部交替左侧的额外外观.这是必要的,因为R实现了前瞻性的方式strsplit
. 有关详细信息,请参见此处.
text1 <- "aweoiutw839572/)(&2aslk2468"
vector <- c("we", "iu", "24")
terms <- paste0(vector, collapse="|")
regex <- paste0("(?<=", terms, ")|(?<=.)(?=", terms, ")")
strsplit(text1, regex, perl=TRUE)
[[1]]
[1] "a" "we" "o"
[4] "iu" "tw839572/)(&2aslk" "24"
[7] "68"
Run Code Online (Sandbox Code Playgroud)