【问题标题】:How to split a text using a string delimiter with R's strsplit?如何使用带有 R 的 strsplit 的字符串分隔符拆分文本?
【发布时间】:2018-06-29 14:41:35
【问题描述】:

假设我有一本书的文本文件,其中包含多个包含文本的章节。

x <- "Chapter 1 Text. Text. Chapter 2 Text. Text. Chapter 3 Text. Text."

我想把这段文字分开,为每一章获取一个单独的文件。

"Chapter 1 Text. Text." "Chapter 2 Text. Text." "Chapter 3 Text. Text."

理想情况下,我想根据章节保存每个文件,所以第1章,第2章和第3章。

我尝试了以下方法:

unlist(strsplit(x, "Chapter", perl = TRUE))

不幸的是,这会删除我想保留的分隔符。

我还尝试了以下方法:

unlist(strsplit(x, "(?<=Chapter)", perl=TRUE))

不幸的是,这似乎只适用于单个字符,但不适用于字符串。

非常感谢您的帮助!

【问题讨论】:

    标签: r string strsplit


    【解决方案1】:

    我们需要使用正则表达式前瞻

    strsplit(x, "\\s(?=Chapter)", perl = TRUE)[[1]]
    #[1] "Chapter 1 Text. Text." "Chapter 2 Text. Text." "Chapter 3 Text. Text."
    

    【讨论】:

    • 嘿阿伦,你能告诉我在这里使用[[1]] 有什么意义吗?正如我所看到的,没有那个输出也是一样的,将不胜感激。
    • @RavinderSingh13 x 是一个长度为 1 的向量。当我们拆分它时,它变成一个长度为 1 的 list,其中拆分元素作为向量。通过执行[[1]],我们正在提取长度为1 的列表中的元素(向量)。您可以检查strsplit(x, "\\s(?=Chapter)", perl = TRUE) 的输出。它变得更加清晰
    猜你喜欢
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多