r - 导出多个匹配模式

我正在尝试从下面的字符串中提取 AOB1AOB2AOB3

df <- data.frame(
  id = c(1,2,3),
  string = c("acv-32-AOB1", "osa-122-AOB2","cds-543-rr-AOB3")
)

> df
  id          string
1  1     acv-32-AOB1
2  2    osa-122-AOB2
3  3 cds-543-rr-AOB3

有什么想法吗?

谢谢!

最佳答案

我们可以使用 base R 中的 trimws

trimws(df$string, whitespace =".*-")
[1] "AOB1" "AOB2" "AOB3"

或者使用 base R 中的 sub

sub(".*-", "", df$string)
[1] "AOB1" "AOB2" "AOB3"

或者如果我们需要提取“AOB”后跟数字

library(stringr)
str_extract(df$string, "AOB\\d+")
[1] "AOB1" "AOB2" "AOB3"

https://stackoverflow.com/questions/68852435/

相关文章:

python - 将重复列名列表和值列表转换为数据框

amazon-web-services - AWS - 安全组是否足够或是否需要私有(private

java - 比较2 ArrayList java

java - 如何将带逗号的字符串转换为整数和 double

reactjs - React useEffect 钩子(Hook)没有清除间隔

c++ - 编译时 bool 值 C++ 未知的 constexpr 函数参数

vue.js - 如何使用 Nuxt 中间件重定向到外部站点?

python - Pandas:如何使用 json 数组分解数据框

awk - 使用 sed(或 awk 或 tr)将换行符\n 替换为表达式

python - 将字符串数据传递给 matplotlib API 时会绘制什么?