我有一个类似于 "HLeelmloon"
的字符串这是两个词交织在一起。我怎样才能把它分成两个单独的词,在交替的字母上分开?
我可以用 strsplit()
和一个 for
循环将交替字母分配给两个新向量,然后加入列表,但这似乎很冗长:
string <- "HLeelmloon"
split<-el(strsplit(string,''))
> split
[1] "H" "L" "e" "e" "l" "m" "l" "o" "o" "n"
word1<-c()
word2<-c()
for(i in 1:length(split)){
if(i %% 2 == 1){
word1<-append(word1, split[i])
} else {
word2<-append(word2, split[i])
}
}
word1 = paste0(word1, collapse = '')
word2 = paste0(word2, collapse = '')
> word1
[1] "Hello"
> word2
[1] "Lemon"
我的问题是它不是很优雅,如果我想将字符串拆分为 N 个不同的单词,它不会很好地升级。有一个更好的方法吗?
最佳答案
您可以使用 gsub
将交替字符捕获到同一组中:
gsub("(.)(.)?", "\\1", string)
#[1] "Hello"
gsub("(.)(.)?", "\\2", string)
#[1] "Lemon"
关于r - 在交替索引上拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50044233/