根据大写字母(R)分割字符串

时间:2018-12-30 01:01:29

标签: r

我正在使用Vagalume的API提取歌曲歌词。

library(vagalumeR)
library(tibble)
library(stringr)
set.seed(1234)

key = "7a67715b6d0dd6edf7556cc0d176e4ac"

musicas = as.tibble(topLyrics(name = "seu-jorge",
                          message = TRUE))

musica = sample(musicas$id.top, 1)

letra = lyrics(identifier = musica,
   type = "id",
   artist = "seu-jorge",
   key = key)

但是,letra只是一大块文本,我想将其拆分成较小的文本

str_split(string = as.character(letra),
     "[[:upper:]]")

这就是我得到的:

[1] "Pretinha"                                 "aço tudo pelo nosso amor"                
[3] "aço tudo pelo bem de nosso bem (meu bem)" " saudade é minha dor"                    
[5] "ue anda arrasando com meu coração"        "ão"                                      
[7] "uvide que um dia"                         "u te darei o céu"                        
[9] "eu amor junto com um anel"                "ra gente se casar"                       

我敢肯定,你们中的大多数人都不懂葡萄牙语,但是请相信我,它跳过了我用作分隔符的大写字母。如何将大写字母包括在较小的块中?

1 个答案:

答案 0 :(得分:2)

您要使用positive lookahead

str_split(string = as.character(letra), "(?=[[:upper:]])")

如果后面紧跟着一个大写字母,它会在""处分开。