需要從日期部分之后的任何給定字串中洗掉所有文本,這被稱為持續時間,中間有連字符
例如,x = "AB - CEPC - Telephone_BAU_CPM_Link - 20Jan22 - 30Jan22 - 視頻包 - XXXX - 優化"
我目前使用的運算式:gsub("[0-9 AZ az] [22] \- [0-9 AZ az] [22].*", "\1", x)
輸出:AB - CEPC - Telephone_BAU_CPM_Link - 20Jan22 - 30Jan22
但是,連字符前后的空格可能并不總是存在,例如,
x = "AB - CEPC - Telephone_BAU_CPM_Link - 20Jan22-30Jan22 - 視頻包 - XXXX - 優化"
上面提到的正則運算式在這種情況下不起作用
uj5u.com熱心網友回復:
我將sub()在這里與捕獲組一起使用:
x <- "AB - CEPC - Telephone_BAU_CPM_Link - 2Jan22-30Jan22 - Video Package - XXXX - Optimize"
output <- sub("(.*\\b\\d{1,2}[A-Z][a-z]{2}\\d{2}\\s*-\\s*\\d{1,2}[A-Z][a-z]{2}\\d{2})\\b.*", "\\1", x)
output
[1] "AB - CEPC - Telephone_BAU_CPM_Link - 2Jan22-30Jan22"
uj5u.com熱心網友回復:
這是我的想法。與另一個非常相似,但我稍作修改以防日期不總是 2 num、3 letter、2 num。也許你可能有“5Jan22-10Jan22”。也許它總是會顯示“05Jan22-10Jan22”,這不是問題。
x = "AB - CEPC - Telephone_BAU_CPM_Link - 20Jan22-30Jan22 - Video Package - XXXX - Optimize"
sub("(^.*\\d{1,2}[A-Z][a-z]{2}\\d{2}.*\\d{1,2}[A-Z][a-z]{2}\\d{2}).*$", "\\1", x)
#> [1] "AB - CEPC - Telephone_BAU_CPM_Link - 20Jan22-30Jan22"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/522765.html
標籤:r
上一篇:在R中,為什么對具有NA的列進行子集化會回傳一整行NA?
下一篇:繪制多列的均值
