【问题标题】:How to split strings separated by many semicolons in R?如何在R中拆分由多个分号分隔的字符串?
【发布时间】:2020-05-29 19:25:16
【问题描述】:

我的愿望是知道由; 分隔的特定文本的长度,该文本位于任何数字之后。在下面名为txt 的文本中,我不想考虑前两个分号。要获得长度,; 位于 6 之后,应考虑 5。我的意思是代码应该查看一些数字以考虑适当的;

library(stringr)
txt <- "A;B; dd (2020) text  pp. 805-806; Mining; exercise (1999), ee, p-123-125; F;G;H text, (2017) kk"

lenghths(strsplit(txt,";")) 给了我8。然而,就我而言,它应该是3。非常感谢任何帮助。

【问题讨论】:

    标签: r text strsplit


    【解决方案1】:

    我们可以使用正则表达式环视来匹配一个成功的数字 ((?&lt;=[0-9])) 的 ; 并获得 lengths

    lengths(strsplit(txt, "(?<=[5-6]);", perl = TRUE))
    #[1] 3
    

    或使用str_count

    library(stringr)
    str_count(txt, '[5-6];') + 1
    #[1] 3
    

    【讨论】:

    • 是否可以在数字或右括号)后面查看?
    • @Gadaa 在您的示例中 ; 之前没有结束括号
    • 当然!我在) 面前思考。
    • @Gada 例如在这里dd (2020) text pp. 805-806。您在寻找任何)
    • @Gadaa 你需要lengths(lapply(strsplit(txt, "(?&lt;=[5-6]);", perl = TRUE), function(x) grep('\\)', x)))# [1] 3
    猜你喜欢
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    相关资源
    最近更新 更多