regex 在R中提取下划线之间的特定字符串

goqiplq2  于 2023-08-08  发布在  其他
关注(0)|答案(3)|浏览(87)

我有一个这样的字符串:

Euka_20220607_HD1_Swift_121_h3417.csv
Euka_20220608_HD32_Swift_5426_h87.csv

字符串
我想删除Euka_HD[\d+]和后缀.csv并得到:

20220607_Swift_121_h3417
20220608_Swift_5426_h87


我试着在下面:

sub("\\..*" , "", gsub("Euka_", "", x), x)

> 20220607_HD1_Swift_121_h3417


还是得不到我想要的有人能帮忙吗?- 谢谢-谢谢

nwsw7zdq

nwsw7zdq1#

你走对了路。下面是正确的代码:

x <- c("Euka_20220607_HD1_Swift_121_h3417.csv", "Euka_20220608_HD32_Swift_5426_h87.csv")

result <- gsub("^Euka_|_HD\\d+|\\.csv$", "", x)
print(result)
[1] "20220607_Swift_121_h3417" "20220608_Swift_5426_h87"

字符串

oiopk7p5

oiopk7p52#

请尝试以下代码

library(stringr)

str_remove_all(text,'(Euka_)|(HD\\d+\\_)|(\\.\\w+)')

[1] "20220607_Swift_121_h3417" "20220608_Swift_5426_h87"

字符串

tkclm6bt

tkclm6bt3#

另一种选择:

sub("Euka_(.+)HD\\d+_(.+)\\.csv", "\\1\\2", x)

# [1] "20220607_Swift_121_h3417"
# [2] "20220608_Swift_5426_h87"

字符串

相关问题