【问题标题】:error extracting some characters using 'gsub'使用“gsub”提取某些字符时出错
【发布时间】:2020-01-21 00:02:25
【问题描述】:

我想在评论之间提取某种键。这是我尝试过的:

x<-c("0000169/2020", " 00038/01-2020 para la busqueda y localizacion d", "037/01-2020  coment",
     00076/01-2020  se añ")
x2<-gsub("{0,1}[0-9]{4}(\\ {1,}.*)", "", x)

这是结果:

x2 
c("0000169/2020", " 00038/01-", "037/01-",00076/01-")

这就是我想要的:

c("0000169/2020", " 00038/01-2020", "037/01-2020",00076/01-2020")

如何在不消除我一直试图隔离的代码的一部分的情况下消除多余的文本? 它必须是代码之后的部分,因为代码模式略有不同。

【问题讨论】:

    标签: r regex gsub


    【解决方案1】:

    你能用这样的东西吗?

    sub("(\\d+/\\d+(-\\d+)?).*", "\\1", x)
    #[1] "0000169/2020"   " 00038/01-2020" "037/01-2020"    "00076/01-2020"
    

    这会提取一个数字,后跟"/",然后是另一个带有可选"-" 和数字的数字。

    同样的模式可以用在str_extract from stringr

    stringr::str_extract(x, "\\d+/\\d+(-\\d+)?")
    

    【讨论】:

    • 谢谢!您的代码完成了这项工作。只有一个问题。你知道为什么我的不工作吗?
    • 对不起,我没看懂你的代码。我不太清楚它在做什么。
    猜你喜欢
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多