將此作為字串
x <- c("MR 200 12345M123456.txt", "MR 200 12345M12345.txt")
預期輸出:
12345M123456
12345M12345
任何建議都會很棒
uj5u.com熱心網友回復:
拆分空間" ",獲取最后一項,然后提取不帶擴展名的檔案名:
tools::file_path_sans_ext(sapply(strsplit(x, " ", fixed = TRUE), tail, 1))
# [1] "12345M123456" "12345M12345"
uj5u.com熱心網友回復:
stringr::str_extract使用orbase::regmatches和的另一種可能性base::regexpr。
x <- c("MR 200 1234556456M123456.txt", "MR 200 12345M12345.txt")
stringr::str_extract(x, pattern = "[1-9] M[1-9] ")
#> [1] "1234556456M123456" "12345M12345"
regmatches(x, regexpr("[1-9] M[1-9] ", x))
#> [1] "1234556456M123456" "12345M12345"
正則運算式[1-9] M[1-9] 選擇字母M及其前后的所有數字。因此,它不取決于您在字母 M 之前或之后有多少個數字,即使“12345 或 123456 是動態的”也應該有效。
例子:
stringr::str_extract("MR 200 1234556456M156.txt", pattern = "[1-9] M[1-9] ")
[1] "1234556456M156"
uj5u.com熱心網友回復:
我們也可以sub使用base R
sub(".*\\s ([0-9A-Z] )\\.txt", "\\1", x)
[1] "1234556456M123456" "12345M12345"
或與trimws
trimws(x, whitespace = ".*\\s |\\.txt")
[1] "1234556456M123456" "12345M12345"
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/454422.html
