我在用
gsub(".*_","",ldf[[j]]),1,nchar(gsub(".*_","",ldf[[j]]))-4)
Run Code Online (Sandbox Code Playgroud)
创建要写入的路径和文件名。它适用于lfd只有一个下划线的名称。具有另一个下划线的文件名,它会切断第二个下划线前面的所有内容。
我有例如:
Arof_07122016_2.csv我想要07122016,但我得到2. 但我不明白为什么会这样。如何使用这一行只截断第一个下划线中的字符并保留第二个?
看来你想要
sub("^[^_]*_([^_]*).*", "\\1", ldf[[j]])
Run Code Online (Sandbox Code Playgroud)
查看正则表达式演示
模式匹配
^ - 字符串的开始[^_]* - 0+ 个字符,除了 __ - 一个underascxore([^_]*) - 捕获组 #1:除此之外的任何 0+ 个字符 _.* - 字符串的其余部分。将\1在替换模式只保留在结果中捕获的值。
R演示:
v <- c("Arof_07122016_2.csv", "Another_99999_ccccc_2.csv")
sub("^[^_]*_([^_]*).*", "\\1", v)
# => [1] "07122016" "99999"
Run Code Online (Sandbox Code Playgroud)