如何将字符串 "a\n\nb" 拆分为 c("a", "", "", "b")?

김용석*_*김용석 7 r strsplit stringr

当我stringr::str_split通过“\n”“\n\na\n”时,我得到了c("", "", "a", "").

c("a", "", "", "b")我期望当我stringr::str_split通过“\n”“a\n\nb”时可以获得,但我c("a", "", "b")却获得了。如何c("a", "", "", "b")通过拆分“a\n\n\a”来获得?

尝试:

stringr::str_split("a\n\nb", "\n")
Run Code Online (Sandbox Code Playgroud)

预计:

c("a", "", "", "b")
Run Code Online (Sandbox Code Playgroud)

结果:

c("a", "", "b")
Run Code Online (Sandbox Code Playgroud)

akr*_*run 3

假设我们要单独提取每个字符,只需在空白处进行拆分并删除所有\n以返回拆分元素的空白

str_remove_all(strsplit(str1, "")[[1]], "\n")
[1] "a" ""  ""  "b"
Run Code Online (Sandbox Code Playgroud)

或者perl = TRUE与使用\n?

strsplit(str1, "\n?", perl = TRUE)[[1]]
[1] "a" ""  ""  "b"
Run Code Online (Sandbox Code Playgroud)

如果它应该\n只在每个

strsplit(str_replace(str1, "(\n\\S)", "\n\\1"), "\n")[[1]]
[1] "a" ""  ""  "b"
Run Code Online (Sandbox Code Playgroud)

数据

str1 <- "a\n\nb"
Run Code Online (Sandbox Code Playgroud)