首页 > 解决方案 > 使用R在字符串中最后一个反斜杠后提取8个字符

问题描述

我有一个向量,其中包含 R 中的以下类型的数据(不仅仅是这里的两个):

df <- c("04 IRB/IEC and other Approvals\04.01 IRB/IEC Trial Approvals\04.01.02 IRB/IEC Approval",
 "01 Trial Management\01.01 Trial Oversight\01.01.02 Trial Management Plan")

所有观察都具有相同的结构,带有两个反斜杠。我想在最后一个反斜杠(或包括句点的数值)之后立即提取 8 个字符。这是我在 R 中想要的示例(我一直在尝试使用 stringr):

df2 <- c("04.01.02", "01.01.02")

如果有人熟悉 DIA TMF 参考模型,我想要来自 DF 的区域/部分/工件编号。

谢谢!

标签: rcharacterstringrbackslash

解决方案


我们可能需要

library(stringi)
library(stringr)
stri_extract_last_regex(str_replace_all(df, setNames(c(" 04", " 01"),
      c("\004", "\001"))), "\\d{2}\\.\\d{2}\\.\\d{2}")
[1] "04.01.02" "01.01.02"

推荐阅读