【发布时间】:2021-10-14 10:11:23
【问题描述】:
我不太擅长使用正则表达式。我有一个字符串向量。我想在最后一个数字后面的空格之后提取所有内容。我检查了各种其他 SO 帖子,但我尝试过的所有内容都会破坏字符串。
我尝试过直接提取我想要的文本以及提取我不想要的文本。这两方面我都失败了。
这是一个样本向量:
c("54 ABC, efg xyz", "ABC 08 abcdef ghijkl", "ABC 01-02 ghijkl")
这是所需的输出
c("ABC, efg xyz", "abcdef ghijkl", "ghijkl")
这是我尝试过的:
library(dplyr)
library(stringr)
c("54 ABC, efg xyz", "ABC 08 abcdef ghijkl", "ABC 01-02 ghijkl") %>%
str_replace("[^[:digit:]] +", "")
[1] "54 ABCefg xyz" "AB08 abcdef ghijkl" "AB01-02 ghijkl"
我试着把它分成几个步骤:
c("54 ABC, efg xyz", "ABC 08 abcdef ghijkl", "ABC 01-02 ghijkl") %>%
str_replace_all("^[:digit:]+\\s", "") %>%
str_replace_all("ABC ", "") %>%
str_replace_all("^[:digit:]+\\s", "") %>%
str_replace_all(".*? ", "")
[1] "xyz" "ghijkl" "ghijkl"
还有其他一些尝试,但不值得发布。
我确信在我花了几个小时无处可去之后,有人能够轻松解决这个问题。
【问题讨论】: