给定字符串:
smple_paths <- c("/path/path/path/abc22/path/path",
"/apath/apath/paath/abc11/something/path")
我希望替换除了 abc\\d{2}
这个短语以外的所有字符。
尝试
gsub(
pattern = "(?!abc\\d{2})",
replacement = "",
x = smple_paths,
perl = TRUE
)
# [1] "/path/path/path/abc22/path/path"
# [2] "/apath/apath/paath/abc11/something/path"
期望的结果
abc22
abc11
注释
- 我不需要基于
stringr::str_extract
或其他非gsub
方法的解决方案。
abc\\d{2}
吗?regmatches(smple_paths, gregexpr("abc\\d{2}", smple_paths))
为什么要替换? - Wiktor Stribiżewsub("^.*/(abc\\d{2})(?:/.*)?$", "\\1", smple_paths)
这样简单的东西呢? - Wiktor Stribiżewgsub
语法。 - Konrad