【问题标题】:extract string before/after character without this character in r在r中没有这个字符的情况下提取字符串之前/之后的字符
【发布时间】:2020-11-25 22:51:36
【问题描述】:

我有一个看起来像这样的字符串:

strings <- c("100% 16 Feedback Kakkanad, Ernakulam","98% 159 Feedback Greater Kailash Part 1, Delhi","Bannerghatta Road, Bangalore ₹250 Available on Su")

我想使用 stringr 提取反馈数量。经过几次尝试,我几乎得到了它。

stringr
str_extract_all(strings,"\\%.*[0-9]\\s", simplify = T)

上面的函数返回向量:

"% 16 ", "% 159 ",""

我只想提取这个数字,所以删除 % 和空格。我试图搜索,但我不知道如何用更少的词来定义我的问题:(

【问题讨论】:

    标签: r stringr


    【解决方案1】:

    我们可以使用 str_extract 和正则表达式环视来提取任何零个或多个空格 (\\s*) 后跟字符串“反馈”的数字

    library(stringr)
    as.numeric(c(str_extract_all(strings, "\\d+(?=\\s*Feedback)", simplify = TRUE)))
    #[1]  16 159
    

    匹配% 的问题在于它也成为输出的一部分。相反,它可以是一个正则表达式环视

    as.numeric(str_extract_all(strings,"(?<=\\%\\s)[0-9]+", simplify = TRUE))
    #[1]  16 159
    

    【讨论】:

    • 感谢您的快速解答!
    猜你喜欢
    • 2018-06-27
    • 2014-09-09
    • 2018-08-21
    • 2014-11-24
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多